Listview只显示arraylist的最后一项
问题描述:
我有一个问题。目前我使用Lazyloading使用ArrayList将图像和数据加载到我的列表视图中。但它只显示数组列表的最后一项。Listview只显示arraylist的最后一项
下面是惰性加载适配器类:
public class LazyAdapter extends BaseAdapter {
private Activity activity;
private ArrayList<Hashtable<String,String>> data;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader;
public LazyAdapter(Activity a, ArrayList<Hashtable<String,String>> d) {
activity = a;
data=d;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader=new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public static class ViewHolder{
public TextView title;
public TextView author;
public TextView format;
public TextView call_number;
public ImageView cover_image;
public Button next;
public Button previous;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
ViewHolder holder;
if (convertView == null){
vi = inflater.inflate(R.layout.search_result_display_list , null);
holder=new ViewHolder();
holder.next = (Button) vi.findViewById(R.id.next);
holder.previous = (Button) vi.findViewById(R.id.previous);
holder.title = (TextView) vi.findViewById(R.id.item_title);
holder.author = (TextView) vi.findViewById(R.id.item_author);
holder.format = (TextView) vi.findViewById(R.id.item_format);
holder.call_number = (TextView) vi.findViewById(R.id.item_call_number);
holder.cover_image=(ImageView) vi.findViewById(R.id.cover_image);
vi.setTag(holder);
}
else {
holder=(ViewHolder)vi.getTag();
vi = convertView;
}
for(int i = 0; i < getCount(); i++) {
holder.title.setText(data.get(i).get("title"));
holder.author.setText(data.get(i).get("author"));
holder.format.setText(data.get(i).get("format"));
holder.call_number.setText(data.get(i).get("callNumber"));
holder.cover_image.setTag(data.get(i).get("coverImage"));
imageLoader.DisplayImage(data.get(i).get("coverImage"), activity, holder.cover_image);
}
return vi;
}
我想,这个问题实际上可能是与我的for循环。无限生成的地方。但是我不知道我在输入这段代码的过程中出了什么问题。请帮忙。
答
在data.get(i)
使用position
天哪for循环,并取代我的删除。有用!几个小时一直盯着这个错误,我甚至没有想到使用位置!哈哈。谢谢!!!! – 2011-05-16 06:47:40
惊人!!!!!!!! – 2016-03-17 11:07:14