2011.09.07

Android:ID 属性値のポリシー

画面の XML ファイルに記述する ID 属性値をきちんとルールづけして記述してますでしょうか。後々、修正するのは大変な労力になってしまうので、先にポリシーを作っておくと便利です。

今回は、私なりの ID 属性値のポリシーをご紹介したいと思います。
あくまでも私の指針ですので、参考程度にみてください、、、

<前提事項>
ID はアプリのプログラム全範囲に対し、ユニークであることが望ましい。
(下記 URL の「属性 > ID」の項、参照ください。)

http://www.techdoctranslator.com/android/guide/ui/declaring-layout

<ポリシー>

  1. ソースから取得する必要がないコンポーネントについては、そもそも ID 属性を付けないようにする。
  2. ID の属性値は、以下のルールのもと、ユニークな値となるようにする。
    (※全て英半角小文字かつ、区切り文字はアンダースコア()とする。) %XML ファイル名%%コンポーネント略称%_%画像ファイル名 or 機能名%

例.
list_txt_title

  1. コンポーネントの略称には以下を用いる。
    Button > btn
    MapView > mapview
    ImageView > img
    TextView > txt
    WebView > web
    EditText > etext
    LinearLayout > llayout
    FrameLayout > flayout
    ViewStub > stub
    など

以上です。ポイントは1つ!
ID 属性値は、開発するアプリ内でユニークな値となるように設定してください。

この手の情報を探していると、異なる XML ファイルであれば、ID の値は同じでもよいという記載が見受けられます。同じ値にした場合、重複していてもコンパイルエラーとならない、どちらが優先されるか分からないなど実行しなければ挙動が確認できない場合もあります。

前提事項で紹介した URL に記載ある通り、ID 属性値はユニークにすべきでしょう。