XMLレイアウトのビューのリソースIDは、すべてのレイアウトで一意である必要がありますか?AndroidリソースID
たとえば、私はレシピマネージャのアプリを少し作っています。私は新しい材料を追加するためのレイアウトファイルを持っています。このレイアウトでは、私は "edt_name"と呼ぶ成分のEditTextを持っています。しかし、私はこの名前があまりにも一般的であることを恐れています。例えば他のXMLレイアウトファイルのレシピ名、調理手順名などのEditTextもあります。
ただし、ラベルを必要以上に複雑にしたくない場合もあります。私は上記のEditTextを "edt_name_new_ingredient"と呼ぶのを避けたいと思います。
私は、開発者がどのようにリソースを一般的に整理するかについて興味があります。 Androidは、私が知る限り、リソースのサブディレクトリをサポートしていないので、名前付けスキームは本当に乱雑になる可能性があります。
私のJavaファイルでR.id.(view_id)にアクセスすると、すべてのビューからIDのリストを取得できますか?私は、同じ名前の2つの異なるXMLレイアウトファイルで2つのエディットボックスの名前を付けようとしました。エラーメッセージは表示されませんでしたが、R.id.(view_id)を使用すると、view_idが1つしかなく、IDがどのEditTextを参照しているのか分かりません。 –
あなたは正しいですが、Androidでは、ビューIDのすべてから、アクティビティ内のsetContentViewメソッドを使用して設定したXMLレイアウトからビューIDを選択します。あなたがリストに載っているということです。だからこそあなたは何の誤りもありません。 2つのxmlでedittextのIDを変更してみてください...次に起こっていることのより良い画像を得ることができます –
私はちょうどあなたが言ったことをテストし、あなたは正しい、success_anilです。 R.id.(view_id)はすべてのレイアウトのすべてのビューを表示しますが、現在使用しているレイアウトにビューが見つからない場合は、プログラムがクラッシュします。したがって、異なるレイアウトファイルにまたがって同じIDを持つ2つのビューがある場合は、現在のレイアウトファイル内のビューを自動的に使用します。 –