2011-06-28 7 views
0

ViewGroupの中に名前が「名前」のchildViewを入れたいと思います。私はnameViewがGroupView内部の2番目の項目であることを知っていたので、私は、次のコードを使用:には何か同等のgetChildViewByIDがあります。

TextView nameView = (TextView)((ViewGroup)view).getChildAt(2); //2 is magic number 

しかし、将来的に、私はnameView前にいくつかの他のビューを追加することができますし、コードの上だろう、ということも可能です無効になった。だから、どのように名前のようにChildViewを得ることができるのだろうかと思う:

 TextView nameView = (TextView)((ViewGroup)view).getChildByID(R.id.name); 

編集:kcoppockに感謝。私はgetChildByName("name")が意味をなさないと分かります。だから、私はgetChildByIDのようなものを手に入れます。

+2

「名前」という名前はどういう意味ですか?そのID?これは私には意味をなさない。 – kcoppock

答えて

5

あなたが探しているメソッドはView.findViewById(id)です。あなたの例あたり:(のViewGroupにキャストする必要はありません)

TextView nameView = (TextView) view.findViewByID(R.id.name); 

バリー

+0

私にそれを打つ。 :) – kcoppock

+3

申し訳ありませんが、私はあなたよりもポイントが必要です! ;-) –

1

あなただけちょうど最初の取得、そのIDでのViewGroupの特定の子を見つける必要がある場合ViewGroupへの参照:

ViewGroup vg = (ViewGroup)findViewById(R.id.myGroupLayout); 

次に、その上のViewGroup findViewById()を呼び出す:

View v = (TextView)vg.findViewById(R.id.name); 
+1

+1私は私も同様のIDでviewGroupを得ることができることを知らせるために! – pierrotlefou

関連する問題