Я получаю список элементов из 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 устанавливается значение «исчез», поэтому его не нужно изменять в остальном. Когда я удаляю if-else и оставляю только код внутри else, список работает правильно, но мне нужна следующая ссылка. Есть идеи по поводу странного поведения? Пожалуйста, дайте мне знать, если вам нужен какой-либо дополнительный код или вам необходимо выяснить, что происходит.