Я получаю список элементов из URL-адреса и отображаю их в ListView с помощью настраиваемого ArrayAdapter. Я отображаю не более 25 результатов, но получаю до 26 из URL-адреса, потому что я хочу отображать ссылку «следующая», если их больше 25. Я пытаюсь найти способ сделать так, чтобы последний элемент в представлении просто отображался следующая ссылка вместо изображения и два TextView, отображаемых другими элементами. При прокрутке вниз все элементы отображаются так, как они должны быть, но последний элемент продолжает выглядеть как остальные. При прокрутке вверх каждый пятый элемент пуст (можно сказать, что он все еще там из-за разделительных линий).
Внутри getView:
if (position + 1 == limit) { // Limit = 26, corresponding position is 25
Log.e("Last Item", String.valueOf(position));
// Gone
image.setVisibility(8);
text.setVisibility(8);
// Visible
next.setVisibility(0);
} else {
if (item != null) {
Log.e("Other item", String.valueOf(position));
if (top_text != null) {
top_text.setText(item.getItemTitle(), BufferType.SPANNABLE);
}
if(bottom_text != null){
bottom_text.setText(item.getItemDescription());
}
}
}
return view;
В ddms он печатает тег «Последний элемент» только для последнего элемента и тег «Другой элемент» для остальных, но элементы не изменяются на основе if-else. В XML для параметра next установлено значение «ушел», поэтому его не нужно изменять в else. Когда я удаляю if-else и оставляю только код внутри else, список работает правильно, но мне нужна следующая ссылка. Любые идеи о причине странного поведения? Пожалуйста, дайте мне знать, если вам нужно увидеть какой-либо дополнительный код или вам нужно разъяснение того, что происходит.