18

以下のようなレイアウトがある場合、kotlin 合成拡張機能を使用してビューにアクセスする方法:

ファイル:two_days_view.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <include
        android:id="@+id/day1"
        layout="@layout/day_row"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <include
        android:id="@+id/day2"
        layout="@layout/day_row"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

ファイル: day_row.xml

   <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"       >

        <TextView
            android:id="@+id/dayName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>

dayName へのアクセス方法 私はこのようなものを探しました:

day1.dayName.text = "xxx"
day2.dayName.text = "sss"

アクセスできる Studio が表示されますdayNameが、dayName TextView の参照先はどれですか?

レイアウトが 1 つしか含まれていない場合は正常に動作します。しかし、今では同じレイアウトを複数回含めています。

もちろん、いつでもできます:

day1.findViewById(R.id.dayName).text = "xxx"

しかし、私は素晴らしい解決策を探しています。:)

4

2 に答える 2