android-ExpandableListView子项的CheckBox被随机检查

android-ExpandableListView子项的CheckBox被随机检查,第1张

概述我创建了一个带有相当复杂的子项xml的ExpandableListView.它包含一个TextView,一个复选框和一个EditText.这是CheckBox部分:<TableLayoutxmlns:android="http://schemas.android.com/apkes/android"android:layout_width="match_parent"andr

我创建了一个带有相当复杂的子项xml的ExpandableListVIEw.它包含一个TextVIEw,一个复选框和一个EditText.
这是CheckBox部分:

 <tableLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"               androID:layout_wIDth="match_parent"               androID:layout_height="55dip"               androID:orIEntation="horizontal"               androID:stretchColumns="0">  <tableRow>  androID:layout_wIDth="fill_parent"  androID:layout_height="wrap_content"  androID:orIEntation="horizontal"  >  <TextVIEw      androID:ID="@+ID/lblListItem"      androID:layout_wIDth="wrap_content"      androID:layout_height="wrap_content"      androID:textSize="14dip"      androID:paddingtop="2dp"      androID:paddingBottom="2dp"      androID:paddingleft="?androID:attr/expandableListPreferredChildpaddingleft"/>  <CheckBox      androID:ID="@+ID/cBoxIsRel"      androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content">  </CheckBox>  </tableRow>  </tableLayout>

如果我检查第一个项目,则在每个组中也会检查第五个项目(如果选择了第二个项目,则选择第六个项目).

为什么还要选择它们?

更新:

在getChildVIEw方法中,我有以下代码:

if (convertVIEw == null){  LayoutInflater infalinflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);  convertVIEw = infalinflater.inflate(R.layout.expandable_List_item, null);}TextVIEw txtListChild = (TextVIEw) convertVIEw.findVIEwByID(R.ID.lblListItem);txtListChild.setText(childText);

如果我不使用convertVIEw检查,则不会重用该复选框,但是如果我滚动出去,则选中的复选框也会被取消选中.

解决方法:

这是因为视图的回收.

确保在您的适配器上,bindVIEw()或getVIEw()方法将复选框设置为选中状态.

编辑:

ListVIEw重用视图以提高性能,因此在您的情况下,检查第一个项目,然后在第五个孩子上使用相同的视图,因此也要检查它的原因.

因此,为防止这种情况发生,您必须保存选中的位置,并且在getChildVIEw()方法上应基于保存的值选中/取消选中复选框.

这样,您检查了第一个项目,然后滚动,并且视图被回收到第五个子项目,适配器将调用getChildVIEw作为位置5,然后检查是否已被检查.由于未选中,因此在复选框上调用setchecked(false),它将显示为未选中状态.

总结

以上是内存溢出为你收集整理的android-ExpandableListView子项的CheckBox被随机检查全部内容,希望文章能够帮你解决android-ExpandableListView子项的CheckBox被随机检查所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存