我創建了一個帶有相當複雜的子項xml的ExpandableListView。它包含一個TextView,一個複選框和一個EditText。 這裏是複選框部分:ExpandableListView子項的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>
如果我入住的第一個項目,每一個第5項也被檢查組(如果選擇第二個,然後第6被選中)。
爲什麼他們也被選中?
UPDATE:
在getChildView方法我有這樣的代碼:
如果(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檢查,那麼該複選框不重複使用,但也如果我在滾動出所選擇的複選框被選中。
我不太瞭解你的建議。在適配器中,我有一個getChildView,但它沒有設置任何複選框的狀態。你能多解釋一下嗎? – Nestor
@Nestor查看新編輯 –
我是否有責任保存我的複選框的選中狀態?說,在一個HashMap?沒有任何內置的支持嗎? – Nestor