LoginSignup
41
28

More than 5 years have passed since last update.

@id/hoge と @+id/hoge の違い(プラス記号の有無)について

Last updated at Posted at 2014-06-04

Android でレイアウトを作成するとき、XMLファイルで

<TextView android:id="@+id/hoge" />

のように指定をしますが、android:id="@[+]id/hoge" と指定するプラス記号に意味があるのかどうか気になったので調べてみました。

ID 指定でプラス記号[+]があると新規リソースIDが作成され R.java に追加される

Android の公式ガイドに回答が載っていました。

Value for android:id

For the ID value, you should usually use this syntax form: . "@+id/name".
The plus symbol, +, indicates that this is a new resource ID and the aapt tool will create a new resource integer in the R.java class, if it doesn't already exist.

( Layout Resource | Android Developers )

超意訳すると、

android:id は "@+id/name" のように指定してね。
このプラス記号[+]は、新規リソースIDを作成することを表していて、プラス記号付きのIDがもし R.java クラスにない場合は、aapt ツールが R.java クラスに新規リソースを作成するよ。

とのことです。
他にも、StackOverflow で、

"@+id/add_button" : for add new id

"@id/add_button" : to refer existing id

you should use "@id/add_button" only when "add_button" is already added
to R.java class using "@+id/add_button"

( what is the difference betwenn @id/ and @+id/ in android? - Stack Overflow )

のような回答もありました。
プラス記号付きIDは追加、プラス記号無しIDは参照とのことです。

なので、通常はレイアウトの android:id の値にはプラス記号[+]付きIDを指定するのが良いみたいです。

参考URL

41
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
28