parent.xmlにchild.xmlを複数回includeした場合、同じidのViewが複数できるがそれらへの参照をどうやって取得するか。例は以下。
parent.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include
android:id="@+id/child1_id"
layout="@layout/child"/>
<include
android:id="@+id/child2_id"
layout="@layout/child"/>
</LinearLayout>
</ScrollView>
child.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/left_text_view"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center|right"
android:gravity="right"/>
<TextView
android:id="@+id/right_text_view"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center|right"
android:gravity="left"/>
</LinearLayout>
以下のようにfindViewByIdを二回呼べばいい。
View view1 = findViewById(R.id.child1_id).findViewById(R.id.left_text_view); View view2 = findViewById(R.id.child2_id).findViewById(R.id.left_text_view);
参考: