14

Android アプリケーションの開発を始めたとき、特にレイアウト ファイルなど、必要な場所にカスタム R 値を定義する傾向がありました。例えば:

findViewById(R.id.customerName).setText(customer.getName())

レイアウト付き:

<TextView android:text="TextView" android:id="@id/customerName"
    android:layout_height="wrap_content" android:layout_width="fill_parent" />

android.R今では、代わりに使用する方が良いかもしれないことに気づきました。

findViewById(android.R.id.text1).setText(customer.getName())

レイアウト付き:

<TextView android:text="TextView" android:id="@android:id/text1"
    android:layout_height="wrap_content" android:layout_width="fill_parent" />

あなたはどのような習慣に従っていますか?それぞれの長所と短所は何ですか?

4

4 に答える 4

17

android.Rオペレーティング システムに組み込まれているリソースを利用するためのものです。

多くの画像/レイアウト/その他...を使用して参照できるオペレーティングシステムに付属していますandroid.R

作成した独自のリソースを参照している場合は、ほとんどの場合、組み込みのリソースを使用R.してください。ほとんどの場合、組み込みのリソースはバージョンごとに変更されるため、近づかないようにすることをお勧めします。

于 2011-08-16T18:11:40.320 に答える
1

カスタム。システム提供の ID には、プロジェクトに存在しないリソースをコードで参照するリスクが伴います。カスタム ID は、対応するリソース (ドローアブル、ビュー、レイアウトなど) が存在する場合にのみ存在します。

于 2011-08-16T18:12:43.543 に答える
0

フレームワーク id とレイアウトのカスタム id に大きな利点または欠点はありません。

フレームワーク識別子を使用する利点:

  • これ以上識別子を作成しないでください。apk に 1 つのフィールドを保存します (apk のサイズ制限があります)。
  • のようないくつかの状況で使用する必要があります。ListActivity

フレームワーク識別子を使用することの欠点:

  • わかりやすい名前を付けないでください

どちらの練習でも

  • コードは将来的に機能します
  • 不足している参照は実行時に発見され、コンパイル時に隠されます

SDK のサンプルが決定を下すのに役立つと思いましたが、そうではありませんでした。Notepad および LunarLander アプリケーションandroid.R.idはビュー識別子に を使用しますが、ApiDemos プロジェクトはカスタム識別子を使用します。

両方のアプローチを組み合わせた GestureBuilder のベスト プラクティスは? (@+id/addButton@android:id/empty)

IHMO、HelloActivity と JetBoy を定義するためのより悪い慣行... これは説明的ではなく、 ( 、または)@+id/text @+id/Button01に置き換えられた@andoid:id/button1@+id/startButton

于 2011-08-18T22:00:17.083 に答える
-1

すべてのリソース (レイアウト、画像、文字列など) への参照が含まれているため、独自の R.java クラスが必要です。

「myView」の ID を持つビューへの参照を取得する場合は、R.id.myView を使用します。組み込みの Android リソースへの参照を取得する場合は、android.R.id.text を使用します。

次のページをご覧ください。

http://developer.android.com/guide/topics/resources/accessing-resources.html

于 2011-08-16T18:12:52.033 に答える