朋友们,
我正在使用以下代码来检查/取消选中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问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)