URL から項目のリストを取得し、カスタマイズした ArrayAdapter を使用して ListView に表示しています。最大で 25 件の結果を表示しますが、25 件を超える場合は「次へ」のリンクを表示したいので、URL から最大 26 件を取得します。ビューの最後の項目だけを表示する方法を見つけようとしています。画像の代わりに次のリンクと、他のアイテムが表示する 2 つの TextViews。下にスクロールすると、すべてのアイテムが想定どおりに表示されますが、最後のアイテムは残りのように見え続けます. 上にスクロールすると、5 つおきの項目が空白になります (区切り線があるため、まだそこにあることがわかります)。
内部 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 は gone に設定されているため、else で変更する必要はありません。if-else を削除して、else 内のコードのみを残すと、リストは適切に機能しますが、次のリンクが必要です。奇妙な動作の原因についてのアイデアはありますか? 追加のコードを表示する必要がある場合、または何が起こっているかを明確にする必要がある場合はお知らせください。