1

を呼び出してIDを動的に評価する方法を知っていますsetID()。IDを一意にするために、以前は、事前に生成されたIDのプールからIDを利用ids.xmlして渡していました。setID()

質問1:ids.xml実行時に必要なIDの数を予測できないため、使用せずにIDを割り当てる方法はありますか?

質問1で提示された最初の問題を回避するために、ラベルのハッシュに基づいてIDを動的に割り当てようとしました(各ラベルは一意です)が、IDが自動生成されたIDと衝突しないことを保証する方法はありません。R.java

質問1.1: ID命名の衝突はどのように解決できますか?

質問2:動的に割り当てて生成するID値があると仮定します。上記のIDはに表示されないため、ビューの取得には適用されませんR.idfindViewById()したがって、IDがわかっている場合、どのようにしてビューを取得できますか?

回答2:onCreate()コントロールを返した(終了した)後でのみ、対応するIDでビューを取得できます。

4

2 に答える 2

8

APIレベル17から、を呼び出すことで新しいIDを取得できます

View.generateViewId()

詳細はこちら。

于 2013-03-15T22:25:55.537 に答える
1

実行時に必要なIDの数を予測できないため、ids.xmlを使用せずにIDを割り当てる方法はありますか?

これにより、すべてのビューに一意のIDが保証されます

for(int i =0 ; i < yourIDcount ; i++){
yourView.setId(i);
}

IDがわかっている場合、どのようにしてビューを取得できますか?

View.findViewById(yourView.getId());

すべてのビューには一意のIDがあるため、ビューのIDを取得するために使用できます。必要なビューを取り戻すことができます。

動的という言葉は実行時に作成されることを意味します。onCreateでIDを割り当てると、ビューIDとして割り当てられます。onCreateはアクティビティが作成されたときにのみ呼び出されるため、割り当てたIDがそのまま残るようにすることができます...

于 2012-04-21T17:27:10.617 に答える