0

現在のプロジェクトでは、1年の入力に使用される3つの異なるレイアウトのEditText3つの異なるウィジェットがあります。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に名前を付けて整理するための標準的な方法はありますか?

4

1 に答える 1

1

最初の質問については、Android はリソース xml ファイルに id タグを提供します。つまり、最初に ID を宣言できます ( string と同様)。役立つ情報は次のとおりです: http://developer.android.com/guide/ topic/resources/more-resources.html#Id

于 2012-10-07T19:00:48.613 に答える