網頁上可能有數千篇關於ListView和ListAdapter回收過程的文章,但目前爲止我無法解決我的問題。Android ListView「回收」不存儲最初不可見的行
我使用從遠程服務器獲取的數據自定義ListView行並填充行(TextViews,ImageViews等)內的項目。屏幕一次最多可以顯示5行,如果我有更多的行,我必須滾動。問題是;適配器只存儲和回收前5行的信息,即使我滾動查看第6,7,8等行,我也會在隨機位置一次又一次看到相同的5行。
下面是代碼:
public class ListAdapter extends BaseAdapter {
private ArrayList<String> id, name, address;
private Context context;
public ListAdapter(Context c, ArrayList<String> id,
ArrayList<String> name, ArrayList<String> address,) {
this.id = id;
this.name = name;
this.address = address;
this.context = c;
}
@Override
public int getCount() {
return id.size();
}
@Override
public Object getItem(int position) {
return id.get(position);
}
@Override
public long getItemId(int id) {
return id;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View rowsLayout;
if (convertView == null) {
rowsLayout = (View)LayoutInflater.from(context)
.inflate(R.layout.list_item, null);
//Assign values to TextViews in here
} else {
rowsLayout = convertView;
}
return rowsLayout;
}
}
我使用的方法this website嘗試,但它並沒有幫助。
如果有人可以給我一個解決方案(請用代碼)或指示我到另一篇文章,我將不勝感激。
看看http://stackoverflow.com/questions/16515077/widget-in-listview-disappears-when-listview-scrolls-down/16515327#16515327 – 2013-05-13 05:36:12