私はAndroid開発に不慣れです。画像とTextViews
異なるLayout
XMLファイルに同じIDを使用しても問題ありませんか?
eclipseがそれらを自動リストすると、プロジェクトのすべてのレイアウト変数がリストされるので、衝突しますか?今まで、同じIDを異なるレイアウトで使用しても問題は発生していませんが、長期的には懸念しています。
私はAndroid開発に不慣れです。画像とTextViews
異なるLayout
XMLファイルに同じIDを使用しても問題ありませんか?
eclipseがそれらを自動リストすると、プロジェクトのすべてのレイアウト変数がリストされるので、衝突しますか?今まで、同じIDを異なるレイアウトで使用しても問題は発生していませんが、長期的には懸念しています。
回答:
レイアウトごとに異なるIDを使用することをお勧めします。長期的には、レイアウトが多く、そのためIDが多い場合、それらを区別するのは非常に複雑になります。
私は通常、IDに次のような名前を付けますlayoutName_elementId
。
特にオートコンプリートを使用している場合は、探しているIDを簡単に見つけることができます(作業しているレイアウトはわかっていますが、IDはわかりません。この場合、名前付け戦略では、レイアウト名を入力するだけで、そのレイアウトのすべてのIDが表示されます)。
レイアウトとIDの詳細については、こちらをご覧ください。
ハッピーコーディング、
ok_button
すべての活動で言うことを探すことの問題は何ですか?探しているチャットがわかっている場合は、オートコンプリートがさらに明確になります。
簡単な答え:はい、できます。
長い答え:これを行うことができるのは、findViewById()を使用してレイアウトの一部への参照を取得するときは常に、メソッドは現在拡張されているレイアウトでそのビューのみを検索するためです。そのため、同じIDを持つ別のビューが別のレイアウトにある場合でも、Androidはそこでそれを検索しません。
開発者APIガイドによると:
IDはツリー全体で一意である必要はありませんが、検索するツリーの一部内で一意である必要があります(多くの場合、ツリー全体である可能性があるため、可能な場合は完全に一意であることが最善です)。
つまり、簡単に言うと、これは必須ではありませんが、競合の可能性を回避することをお勧めします。
将来的にリファクタリングが必要になったview
id
場合、Android StudioはすべてのXML
ファイルとクラスでリファクタリングし、問題が発生するため、お勧めしません。
ただしid
、抽象化があり、複数のレイアウトを再利用する場合など、同じものを使用する必要がある場合もあります。
プロジェクトにviews
同じものが複数id's
あり、リファクタリングが必要な場合は、手動で行い、ビルドインIDE関数を使用せず、レイアウトid
内のターゲットビューを変更してから、XML
レイアウト内の赤いエラーを修正します。