このIDシステム全体がAndroidでどのように機能するかについて多くの質問をしたいと思います。ビューのドキュメントを調べましたが、説明が浅すぎて好みに合いませんでした。
使用時にIDE(Eclipse / Netbeans)がIDを生成するパターンはあります
android:id="@+id/..."
か?それとも完全にランダムですか?プログラムでIDを設定した場合、それはContextクラス
findViewById()
関数によって検出されますか?前の質問の答えが「はい」の場合、大量のビューを作成したいが、後で識別できるように個別のIDを持たせたい場合は、どちらを使用するのがよいでしょうか。(この質問に答えるには、最初の2つの答えを知っておくと非常に便利です)
たとえば、可能な限り最大の範囲でランダムIDを生成します。
Random random = new Random(); for(int i=0; i<100; i++) { View view = new View(someContext); view.setId(random.nextInt(Integer.MAX_VALUE)); }
または、IDをある種の順序で設定します。次に例を示します。
final int addToId = 5670; for(int i=0; i<100; i++) { View view = new View(someContext); view.setId(i+addToId); }
- また、たとえばLayoutInflaterを使用
ListView
して、リスト内のすべてのアイテムに対して事前定義されたxmlレイアウトを使用してデータを設定すると、どうなるかを知りたいと思います。getView()
次に、関数でサブビューを取得しますfindViewById()
。したがって、リストアイテム全体で同一のビューはすべて同じIDを持っていると思います。もしそうなら、それでは、tag
属性を使用して、膨らんだレイアウトのアイテムを区別することをお勧めしますか?
これらの質問に対する明確な説明をいただければ幸いです。