私のアプリケーションにはリストビューがあり、リストビューの行はimageViewとTextviewで構成されています。アプリケーションは、Web から画像をダウンロードして、行レイアウトに imageview を設定します。リストビューを上下にスクロールすると、画像が再ダウンロードされるという問題がありました。このため、ViewHolderパターンを使用してリスト項目を保存しました。問題は修正されましたが、今回は新しい問題が発生しました。
Listview には 15 行あります。そのため、リストの一番下にある項目は表示されません。リストを下にスクロールしてアイテムを表示すると、リストの一番上にあるアイテムが lisview の最後に来ます。また、リストを上にスクロールすると、リストの最後のアイテムがリストの一番上に来ます。
そのため、表示する必要のある値や行は表示されません。
私の getView() メソッドの最後の状態は..
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.row_layout, null);
TextView programName = (TextView)convertView.findViewById(R.id.programName);
TextView programTime = (TextView)convertView.findViewById(R.id.programTime);
TextView programState = (TextView)convertView.findViewById(R.id.programState);
ImageView programImage = (ImageView)convertView.findViewById(R.id.programImage);
programName.setText(values.programNames.get(position));
programTime.setText(values.programTimes.get(position));
new imageDownload(programImage).execute(values.programImageUrls.get(position));
viewHolder = new ViewHolder();
viewHolder.p_Name = programName;
viewHolder.p_Time = programTime;
viewHolder.p_State = programState;
viewHolder.p_Image = programImage;
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
return convertView;
}
私のビューホルダー...
public static class ViewHolder {
TextView p_Name;
TextView p_Time;
TextView p_State;
ImageView p_Image;
}
本当にありがとうございました