xml中のレイアウトやウィジェットの@idはいつ使うのか
Androidのお勉強を継続中で、ちょっとなるほど、と思ったのでメモ。
@+idを使わないのはどんなとき?
Button button = (Button) findViewById(R.id.button);
と取得するのですが、このid属性の値って
@id
@+id
とかいくつか種類があります。
いつも下の方しか使ったことがなくてなんでだろう、と
ここ(http://developer.android.com/guide/topics/resources/layout-resource.html#idvalue)で調べてみたら、
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. For example:
とあってはじめてxmlファイル中でそのボタンなりなんなりを定義したときは+をつけなさい。R.javaにリソースIDを書き込むから。みたいなことが書いてある。
でも大体xmlファイルの要素にid属性を使いたいときはその要素に独自のイベント(もしくはイベントリスナ)を用意したいときだから、つけないときもあるということは理論上分かってるけどそれってどんなとき?と思いました。
とりあえず、RelativeLayoutのとき
それを今日、本読んでて気づいたのですが、RelativeLayoutのとき、この要素はこの要素の下に来る、という風に指定するのを書くときに要素の指定をidで行うのです。
こんな感じ。
あー、なるほど、とりあえずこんなとき+が要らないのね、と思っただけでだからなんだという話ですが、少しへぇと思ったので。
他にもあるのを見つけたら、また書き足したいです。