キモは <include> タグ です。
こんなふうに同じレイアウトを何個も使う場合、<include> タグを使うとすっきりします。
<include> タグについては BootCamp のときにも話しました。
「BootCamp を開催したよ。」
サンプルでは、デフォルトのボタンを使ったのでダサいですが、そこはうまくカスタマイズしてください。

- package yanzm.example.fakeexpandablelisttest;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.LinearLayout;
- public class FakeExpadableListTest extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- int groupIds[] = {R.id.group1, R.id.group2, R.id.group3, R.id.group4, R.id.group5, R.id.group6};
- for(int i = 0 ; i < groupIds.length; i++) {
- LinearLayout ll = (LinearLayout) findViewById(groupIds[i]);
- Button button = (Button)ll.findViewById(R.id.button);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- LinearLayout ll = (LinearLayout)v.getParent();
- LinearLayout groupll = (LinearLayout)ll.findViewById(R.id.inputgroup);
- switch(groupll.getVisibility()) {
- case View.GONE:
- groupll.setVisibility(View.VISIBLE);
- break;
- case View.VISIBLE:
- groupll.setVisibility(View.GONE);
- break;
- }
- ((Button)v).setText("Hidden Group");
- }
- });
- }
- }
- }
main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <include android:id="@+id/group1" layout="@layout/item" />
- <include android:id="@+id/group2" layout="@layout/item" />
- <include android:id="@+id/group3" layout="@layout/item" />
- <include android:id="@+id/group4" layout="@layout/item" />
- <include android:id="@+id/group5" layout="@layout/item" />
- <include android:id="@+id/group6" layout="@layout/item" />
- </LinearLayout>
item.xml
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- <
- <Button
- android:id="@+id/button"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Show Group"
- />
- <LinearLayout
- android:id="@+id/inputgroup"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:paddingLeft="32dip"
- android:visibility="gone"
- >
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- >
- <TextView
- android:layout_width="30dip"
- android:layout_height="wrap_content"
- android:text="住所"
- android:layout_marginLeft="5dip"
- />
- <EditText
- android:id="@+id/edittext1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:inputType="text"
- />
- </LinearLayout>
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- >
- <TextView
- android:layout_width="30dip"
- android:layout_height="wrap_content"
- android:text="氏名"
- android:layout_marginLeft="5dip"
- />
- <EditText
- android:id="@+id/edittext2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:inputType="text"
- />
- </LinearLayout>
- <RadioGroup
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- >
- <RadioButton
- android:id="@+id/radio1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="男性"
- />
- <RadioButton
- android:id="@+id/radio1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="女性"
- />
- </RadioGroup>
- </LinearLayout>
- </LinearLayout>
0 件のコメント:
コメントを投稿