我创建了一个带有非常复杂的子项 xml 的 ExpandableListView。它包含一个 TextView、一个 Checkbox 和一个 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>
如果我检查第 1 项,则在每个组中,也会检查第 5 项(如果选择了第 2 项,则选择第 6 项)。
为什么他们也会被选中?
更新:
在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 检查,则不会重复使用该复选框,但如果我滚动出去,选定的复选框也会被取消选中。