2011-09-17 17 views
7

私はダイナミックにLinearLayoutをいくつか生成していますが、すべて異なるタグを使用しています。ViewByTagを見つけるにはどうしたらいいですか?

for (int i = 0; i <= 5; i++) 
{ 
     final LinearLayout LinLayBtn = new LinearLayout(this); 
     LinLayBtn.setTag("id"+String.valueOf(i)); 
     ... 

そして、私は何とかこのレイアウトに別の方法のタグ番号でアクセスする必要があります。

LinearLayout LinLayBtn = (LinearLayout)findViewWithTag("1"); 

これを行うにはどうすればよいでしょうか?

ありがとうございます!

+0

私はプレフィックスタグに文字を付けることにしていますが、 'number only tag identificator 'がまったく間違っていないかどうかわかりません。 –

+0

done。 :)でも、私は後でそれにアクセスする必要がありますか? – Roger

+0

ビューを作成した場合、なぜそれらを見つける必要があるのですか?あなたはそれらを既に知っています。 –

答えて

8

この方法で試しましたが、問題が見つかりましたか?

あなたはこのライン

LinearLayout LinLayBtn = (LinearLayout)findViewWithTag("1"); 

はあなたがタグを設定するときに使用した命名規則を一致させる必要があります。つまり、あなたの例ではこのような何かをしたいと思います:

LinearLayout LinLayBtn = (LinearLayout)findViewWithTag("id1"); 

をあなたはおそらくあなたがので、それらを作成している一方で、アレイ内のビュー参照を格納するためのより良い方法でしょうけれどもこれらの検索の多くを行う必要がある場合すべてのfindView呼び出しを行う必要はありません。または@Muhammadがparent.getChild(index i)を提案して使用するようにします。

+0

http://developer.android.com/reference/android/view/View.html#findViewWithTag%28java.lang.Object%29 findViewWithTag()は、Viewクラスの実際のメソッドです。 – FoamyGuy

関連する問題