キモは <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 件のコメント:
コメントを投稿