現在のプロジェクトでは、1年の入力に使用される3つの異なるレイアウトのEditText
3つの異なるウィジェットがあります。Activity
私はUIを作成することから始め、元々は
<EditText android:id="@+id/year_text" ... other attributes ... />
私の各XMLレイアウトファイルで。この名前の衝突によるコンパイラエラーは発生しませんでしたが、それぞれのUIの背後にある動作を実装し始めたときに、問題になる可能性があることに気づきましたActivity
。だから私の最初の質問は、この種の名前の衝突が将来の問題につながるかどうかです。
私が理解していることから、+
はレイアウトパーサーにファイル内の名前付きIDの新しい値を作成するように指示しR.java
ます。構文を使用して、以前に指定したIDを参照することもでき@id/name
ます。+
1つを除くすべてのを削除するとどうなりEditText
ますか?R
これにより、クラス内の識別子に新しい値を割り当てる問題が解決されます。しかし、異なるレイアウト内で同じIDを再利用すると、問題が発生しますか?(名前の衝突は、同じレイアウト内ではなく、異なるXMLレイアウトファイル間で発生することを思い出してください。)
今のところ、すべてのウィジェットIDに長い名前を作成しました。例えば:
<EditText android:id="@+id/details_year_text" ... other attributes ... />
<EditText android:id="@+id/year_filter_year_text" ... other attributes ... />
<EditText android:id="@+id/year_and_number_filter_year_text" ... other attributes ... />
プレフィックスは、それぞれが存在するXMLレイアウトファイルの名前の後に続きますEditText
。これは、特にNetBeansのオートコンプリート機能を使用する場合は、少し面倒になります。(はい、EclipseではなくNetBeansを使用しています。= p)。実際にウィジェットごとに一意の名前を使用する必要がある場合は、EditText
ウィジェットを名前空間に分割すると便利です。XMLレイアウトはR.id
、IDの名前空間として機能できる内部クラスを作成する構文をサポートしていますか?
最後に、これは非常に小さなプロジェクトであることを私は知っています。私が使用しているよりもはるかに多くのウィジェットを備えたAndroidアプリがあることを想像できます。プロジェクトのXMLレイアウトでIDに名前を付けて整理するための標準的な方法はありますか?