5

たとえば、私はIDを持つビューを持っています:

<ImageButton
        android:id="@+id/imageButtonStart"
        android:layout_width="100dp"
        android:layout_height="100dp" />

次のように、同じ名前のプライベートフィールドを作成する必要がありますか?

private ImageButton imageButtonStart;
4

2 に答える 2

5

同じ名前のプライベートフィールドが必要ですか?

いいえ、android:idレイアウトxmlファイルでは、コードに同じ名前の変数を含める必要はありません。

ただし、IDを検索する場合は、正確な名前を使用する必要があります

View randomName = findViewById(R.id.imageButtonStart);

ネーミングは個人的な好みです。名前の付いたものが何を表すかを明確に定義する名前を選択する必要があります。そして、あなたはあなたの命名スキームと一貫性を保つべきです。

その名前の長さについては議論の余地がありますが、コードが短くて煩わしさが少ないため、一部の人はそれを選択startBtnします。imageButtonStartボタンがImageButtonコードに関係がない場合は、名前を付ける必要はありませんimageButtonbutton意味を明確にするのに十分です。

最も重要な区別が最初に来る階層スキームで名前を使用することを好む人もいます。com.google.marketの代わりにJavaとAndroidのパッケージ名のようにmarket.google.com

との代わりに、startButtonendButtonを選択buttonStartbuttonEndました。この背後にある理由は、オートコンプリートをより効率的に使用できるようにするためです。終了ボタンに名前を付けたかどうか思い出せない場合、endButtonまたはstopButton提案のリスト全体を調べる必要がある場合。buttonXYZスキームを使用するbuttonと、ボタンであり、いくつかの提案しか得られないことがわかっているので、入力を開始できます。

上記は、一貫性を保つ必要がある理由の良い例でもあります。一方のボタンに名前を付けbuttonStart、もう一方のボタンに名前を付けると、clickablethingStopスキーム全体が役に立たなくなります。一貫性のない命名は、正しいものを見つけるためにより多くの時間を必要とし、間違ったものを選択した場合、バグにつながる可能性があります。

もう1つは、名前に使用する言語です。自分自身またはその言語を話す人々のためだけにコードを書く場合は、自分の言語を使用してもまったく問題ありません。しかし、それを他の人と共有したい場合は、英語のままにしてください。間違った英語の名前でも、まったく理解できない言語の名前よりも読みやすく、理解しやすいです。

他にも多くの命名規則があります:WP:命名規則

たとえば、Androidコーディングスタイルガイドには次のように記載されています。

  • 非公開、非静的フィールド名はmで始まります。
  • 静的フィールド名はsで始まります。
  • 他のフィールドは小文字で始まります。
  • パブリック静的最終フィールド(定数)はALL_CAPS_WITH_UNDERSCORESです。

private ImageButton mButtonStart;または_private static sSingletonThing;

ちなみに、この規則は、Androidソースコードに貢献したい場合にのみ使用する必要があり、独自のアプリを任意のスタイルで作成できます。

あなたが本当に従うべき唯一の命名規則は、一般的なJavaクラス/メソッド/変数スキーマです:(上記のウィキペディアのリンクから)

  • クラス名:UpperCamelCase
  • メソッド名:lowerCamelCase
  • 変数名:lowerCamelCase
  • 定数:ALL_CAPS

他の人があなたのコードを読んでいて、あなたが小文字のクラス名などを持っていると、他の人にとって非常に混乱し始めます。

于 2012-11-22T16:18:33.317 に答える
3

一貫性を保ち、変数に同じ名前を使用することをお勧めしますが、次のようなコード内で手動で接続するため、クラス変数をXML内のIDと同じように呼び出す必要はありません。

ImageButton imageButtonNotStart = (ImageButton) this.findViewById(R.id.imageButtonStart);

私の個人的な好みは、XML内componentTypeDescriptiveNameなどの形式を使用することですが、コード内では、などのより英語主導のアプローチを好みます。imageButtonStartstartButton

通常、私は

<ImageButton
        android:id="@+id/imageButtonStart"
        android:layout_width="100dp"
        android:layout_height="100dp" />

ImageButton startButton = (ImageButton) this.findViewById(R.id.imageButtonStart);
于 2012-11-22T16:17:52.000 に答える