ExpandableListActivity
と組み合わせて使用していExpandListAdapter
ます。
私のレイアウト:
---------------------------------
| <TextView> |
| |
|-------------------------------|
| <ExpandableList> | |
| group1 | |
| child1: textView editText | |
| child2: textView switch | |
| group2 | |
| child1: textView textView | |
|-------------------------------|
| <footerView> |
| [button] |
---------------------------------
これが私のchild_layoutです(不要な部分を削除しました):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/tvChild"
android:layout_width="400px"
android:layout_height="wrap_content"
android:focusable="false" />
<EditText
android:id="@+id/etChild"
android:layout_width="400px"
android:layout_height="wrap_content"
android:visibility="gone" />
<TextView
android:id="@+id/tvChild2"
android:layout_width="600px"
android:layout_height="wrap_content"
android:visibility="gone" />
<Switch
android:id="@+id/switchChild"
android:layout_width="400px"
android:layout_height="wrap_content"
android:textOff="NO"
android:textOn="YES"
android:visibility="gone" />
</LinearLayout>
これは、各子にボタン、スイッチ、または textView を追加する方法です。
Switch swc = (Switch) view.findViewById(R.id.switchChild);
EditText etc = (EditText) view.findViewById(R.id.etChild);
TextView tvc = (TextView) view.findViewById(R.id.tvChild2);
if (groupPosition == 0) {
swc.setVisibility(View.GONE);
tvc.setVisibility(View.GONE);
etc.setVisibility(View.GONE);
if (childPosition == 0)
etc.setVisibility(View.VISIBLE);
if (childPosition == 1)
etc.setVisibility(View.VISIBLE);
if (childPosition == 2) {
tvc.setVisibility(View.VISIBLE);
tvc.setText(GlobalVariables.currentSelectedCar);
}
}
したがって、各子には、TextView
変更されない とEditText/TextView/Switch
、ユーザーが編集できる の 1 つがあります。下部のボタンをクリックすると、各子の編集可能なアイテムの値を取得したいと思います。