カスタム配列アダプターの getView メソッドでのビューのリサイクルに関して、不明な問題があります。
要素が再利用されることは理解していますが、if ステートメントの最初の部分で何を実装し、2 番目の部分で何を実装するかを正確に知るにはどうすればよいでしょうか?
現在、次のコードがあります。この質問にたどり着いたのは、ステートメントの 2 番目の部分にコードをドロップすると、最初の 9 つの要素のリストになり、すべての要素ではなく何度も繰り返されるためです。正確には何が原因なのかわかりませんでした...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
title = getItem(position).getTitle();
size = calculateFileSize(position);
txtTitle = (TextView) row.findViewById(R.id.txtTitle);
tvFileSize = (TextView) row.findViewById(R.id.tvFileSize);
txtTitle.setText(title);
tvFileSize.setText(size);
} else {
title = getItem(position).getTitle();
size = calculateFileSize(position);
txtTitle = (TextView) row.findViewById(R.id.txtTitle);
tvFileSize = (TextView) row.findViewById(R.id.tvFileSize);
txtTitle.setText(title);
tvFileSize.setText(size);
}
return row;
}