
这是我的getVIEw方法:
public class AlphabeticalAdapter extends ArrayAdapter<String> { int layoutResourceID; private final Context context; private List<String> data; private ProgressDialog mProgressDialog; private ImageVIEw downloadImagebutton; public AlphabeticalAdapter(Context context,int resource,List<String> data){ super(context,resource,data); this.layoutResourceID = resource; this.context = context; this.data = data; } public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) { // VIEw rowVIEw = convertVIEw; final VIEwHolder vIEwHolder; if (convertVIEw == null) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertVIEw = inflater.inflate(R.layout.catalogsList_single_row,parent,false); vIEwHolder = new VIEwHolder(); vIEwHolder.catlogTitle=(TextVIEw)convertVIEw.findVIEwByID(R.ID.txtTitle); vIEwHolder.icon=(ImageVIEw)convertVIEw.findVIEwByID(R.ID.imageVIEw2); vIEwHolder.downloadImagebutton=(ImageVIEw)convertVIEw.findVIEwByID(R.ID.downloadImagebutton); //downloadImagebutton = (ImageVIEw)rowVIEw.findVIEwByID(R.ID.downloadImagebutton); vIEwHolder.position = position; vIEwHolder.downloadImagebutton.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw v) { System.out.println("DOWNLOAD pressed"); vIEwHolder.downloadImagebutton = (ImageVIEw)v.findVIEwByID(R.ID.downloadImagebutton); vIEwHolder.downloadImagebutton.setimageResource(R.drawable.icon_ok); vIEwHolder.downloadImagebutton.setTag("downloaded"); //rowVIEw.setTag("downloaded"); } }); convertVIEw.setTag(vIEwHolder); } else{ vIEwHolder= (VIEwHolder)convertVIEw.getTag(); } vIEwHolder.catlogTitle.setText(data.get(position)); vIEwHolder.catlogTitle.setTypeface(regularDin); vIEwHolder.icon.setimageResource(R.drawable.cata); if(vIEwHolder.downloadImagebutton.getTag() == "downloaded"){ downloadImagebutton = (ImageVIEw)convertVIEw.findVIEwByID(R.ID.downloadImagebutton); downloadImagebutton.setimageResource(R.drawable.icon_ok); } else{ downloadImagebutton = (ImageVIEw)convertVIEw.findVIEwByID(R.ID.downloadImagebutton); downloadImagebutton.setimageResource(R.drawable.icon_download); } vIEwHolder.position = position; return convertVIEw; } //close getVIEw …
这是我的VIEwHolder类:
static class VIEwHolder{ ImageVIEw downloadImagebutton; TextVIEw catlogTitle; ImageVIEw icon; int position; }解决方法 在下面更改您的代码.我想你错过了. public class AlphabeticalAdapter extends ArrayAdapter<String> { int layoutResourceID; private final Context context; private List<String> data; private List<String> Tags; private ProgressDialog mProgressDialog; private ImageVIEw downloadImagebutton; public AlphabeticalAdapter(Context context,List<String> data) { super(context,data); this.layoutResourceID = resource; this.context = context; this.data = data; Tags = new ArrayList<String>(); int size = data.size(); for (int i = 0; i < size; i++) { Tags.add("tag"); } } static class VIEwHolder { ImageVIEw downloadImagebutton; TextVIEw catlogTitle; ImageVIEw icon; int position; } public VIEw getVIEw(final int position,VIEwGroup parent) { // VIEw rowVIEw = convertVIEw; final VIEwHolder vIEwHolder; if (convertVIEw == null) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // convertVIEw = inflater.inflate(R.layout.catalogsList_single_row,// parent,false); vIEwHolder = new VIEwHolder(); vIEwHolder.position = position; vIEwHolder.downloadImagebutton .setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw v) { System.out.println("DOWNLOAD pressed"); vIEwHolder.downloadImagebutton.setTag("downloaded"); Tags.add(position,"downloaded"); } }); convertVIEw.setTag(vIEwHolder); } else { vIEwHolder = (VIEwHolder) convertVIEw.getTag(); } vIEwHolder.catlogTitle.setText(data.get(position)); vIEwHolder.catlogTitle.setTypeface(regularDin); vIEwHolder.icon.setimageResource(R.drawable.cata); if (Tags.get(position) == "downloaded") { downloadImagebutton.setimageResource(R.drawable.icon_ok); } else { downloadImagebutton.setimageResource(R.drawable.icon_download); } vIEwHolder.position = position; return convertVIEw; } // close getVIEw} 总结 以上是内存溢出为你收集整理的使用ViewHolder的Android列表视图全部内容,希望文章能够帮你解决使用ViewHolder的Android列表视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)