android–CustomAdapter中的ListView Checkbox问题

android–CustomAdapter中的ListView Checkbox问题,第1张

概述朋友们,我正在使用以下代码来检查/取消选中listview中的复选框publicAdapterBank(Contextcontext,List<Bank>list,ListViewlst){mInflater=LayoutInflater.from(context);this.context=context;listview=lst;banks=list;}pu

朋友们,

我正在使用以下代码来检查/取消选中ListvIEw中的复选框

public AdapterBank(Context context,List<Bank> List,ListVIEw lst) {     mInflater = LayoutInflater.from(context);      this.context = context;      ListvIEw = lst;      banks= List;    }     public VIEw getVIEw(final int position, VIEw convertVIEw, VIEwGroup parent) {          VIEwHolder holder;          if (convertVIEw == null) {            convertVIEw = mInflater.inflate(R.layout.List_banks, null);            holder = new VIEwHolder();            holder.bankname = (TextVIEw) convertVIEw.findVIEwByID(R.ID.bankname);            holder.bankIcon = (ImageVIEw) convertVIEw.findVIEwByID(R.ID.bankIcon);            holder.checkBox = (CheckBox) convertVIEw.findVIEwByID(R.ID.checkBox);            convertVIEw.setTag(holder);          } else {            holder = (VIEwHolder) convertVIEw.getTag();          }          Bank bank = getItem(position);          holder.checkBox.setonCheckedchangelistener(new OnCheckedchangelistener() {                @OverrIDe                public voID onCheckedChanged(Compoundbutton checkBoxVIEw, boolean isChecked) {                    banks.get(position).setSelected(isChecked);                    //Toast.makeText(context, "" + position, Toast.LENGTH_LONG).show();                }            });          if(bank.isSelected())            {                holder.checkBox.setChecked(true);            }else            {                holder.checkBox.setChecked(false);            }

当我选中任何复选框并滚动它.选中复选框不再检查.
任何人指导我在这做什么错?

解决方法:

您可以尝试使用静态侦听器(可能无法纠正您的错误,但肯定会降低您正在创建的“临时”对象的数量):

public VIEw getVIEw(final int position, VIEw convertVIEw, VIEwGroup parent) {    VIEwHolder holder;    if (convertVIEw == null) {        convertVIEw = mInflater.inflate(R.layout.List_banks, null);        holder = new VIEwHolder();        holder.bankname = (TextVIEw) convertVIEw.findVIEwByID(R.ID.bankname);        holder.bankIcon = (ImageVIEw) convertVIEw.findVIEwByID(R.ID.bankIcon);        holder.checkBox = (CheckBox) convertVIEw.findVIEwByID(R.ID.checkBox);        holder.checkBox.setonCheckedchangelistener(checkListener);        convertVIEw.setTag(holder);    } else {        holder = (VIEwHolder) convertVIEw.getTag();    }    Bank bank = getItem(position);    holder.checkBox.setTag(bank);    holder.checkBox.setChecked(bank.isSelected());    return convertVIEw;}private OnCheckedchangelistener checkListener = new OnCheckedchangelistener() {   @OverrIDe   public voID onCheckedChanged(Compoundbutton checkBoxVIEw, boolean isChecked) {     Bank b = (Bank) checkBoxVIEw.getTag();     b.setSelected(isChecked);   }});
总结

以上是内存溢出为你收集整理的android – CustomAdapter中的ListView Checkbox问题全部内容,希望文章能够帮你解决android – CustomAdapter中的ListView Checkbox问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存