1

以下のように、レイアウト ファイルにいくつかの TextView 要素があります。

<Table Layout>
    ...

    <TableRow android:gravity="center_horizontal">    
        <TextView
            android:id="@+id/tv1"
            android:text="@string/text_value"
            android:tag="id1">

     ...

    <TableRow android:gravity="center_horizontal">    
        <TextView
            android:id="@+id/tv1"
            android:text="@string/text_value"
            android:tag="idN">

     ...

</TableLayout>

使いたい

  for (int i=0; i < 10; i++) {
     myText = (TextView) findViewbyTag("id"+i);
     myText.setText("id is - "+i);
  } 

各タグ値に一致するように構築し、テキスト値を各 TextView 要素に設定します。うまくいきません!tp が id で使用する方法は理解していますが、id はリソースからの int 値であり、for() 構築で生成できません。

私に何ができる?findViewbyTag の使用方法

4

1 に答える 1

2

タグを使用する必要はありません。次のように動的リソース検索を使用する必要があります。

for (int i=0; i < 10; i++) {
  // generate id dynamically
  int id = getResources().getIdentifier("tv"+i, "id", getPackageName());
  // find view by generated id
  TextView myText = (TextView) findViewbyId(id);
  myText.setText("id is - tv"+i);
}

getResources()との両方getPackageName()が のメソッドですContext

于 2013-11-06T05:44:31.903 に答える