5

何度かインクルードしなければならないレイアウトがあります。と で構成されTextViewますImageView

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:background="@drawable/back2"
    android:id="@+id/id_1"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/id_2"
    android:textSize="15dp"
    android:typeface="sans"
    android:textColor="#ffffff" />

今、プログラムでテキストを設定したいのですが、私が直面している問題はTextView、同じレイアウトを何度か含めているため、常に同じ ID を持つことです。プログラムでレイアウトを含め、含まれる各レイアウトの ID を常に変更する方法はありますか?

4

5 に答える 5

8

含まれているレイアウトの特定のインスタンスのビューにアクセスする必要がある場合は、次のようにします。

ViewGroup instance = (ViewGroup) findViewById(R.id.included1); // Replace ViewGroup with whatever your particlar type is
ImageView iView = (ImageView) instance.findViewById(R.id.id_1);
TextView tView = (TextView) instance.findViewById(R.id.id_2);
于 2012-06-29T16:08:48.047 に答える
2

TextViewを動的に作成してから、を使用TextView.setId(int id)してそのビューのIDを設定し、後で新しいIDで呼び出すことができるようにすることができます。

于 2012-06-29T16:08:26.363 に答える
1

テキストビューごとに

行の ID をandroid:id="@+id/id_2" 別の ID に変更します。

例えば:

android:id="@+id/id_4"

プログラムでそれらを追加するには、次のようにします。

            TextView Label3 = new TextView(this);
            Label3.setId(300);
            Label3.setTextAppearance(this, android.R.attr.textAppearanceMedium);
            Label3.setLayoutParams(labelParams);
            Label3.setText("My textViewCaption:");
            ll3.addView(Label3);

また、Label3 をグローバル変数として設定すると、次の方法でアクセスして変更できます。setText

プログラムでこれをループして、ループ中にIDを設定できます

于 2012-06-29T16:10:07.997 に答える
1

これを使用して TextView id を変更できます
TextView textview = new TextView(this); textview.setId(int id);

于 2012-06-29T16:30:17.163 に答える
0

私の知る限り、これを行う方法はありません。<include>XML レイアウトの ID を一意にする場合は、を使用せずにレイアウトを作成する必要があります。

于 2012-06-29T16:06:24.433 に答える