HTML のタグに id をつけて、CSS や JavaScript から参照するのと同じです。
なお、インタフェースは res/layout/ ディレクトリ内に保存されています。
View に id をつける
<TextView android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" />
TextView に id をつけています。
android:id="@id+/******" 文字列の先頭に @id とある場合、/ の後ろと合わせて、これは id ですよと指定できるようです。
後述しますが、 + を書くと R.java の中に id が登録され、+ がないと登録済みの id を使うことを意味するようです。
View を参照する
Java から id を使って View を取得してみます。src/******/MainActivity.java を開きます。
id をから View を取得するには findViewByID() メソッドを使います。
protected void onStart() { super.onStart(); TextView textview = (TextView)findViewById(R.id.text_view); Log.d("TextView", textview.getText().toString()); }
xml で @id+/****** を指定していると R.java の id に自動的に追加されるので、それを参照します。android.util.Log Class でログが出力できるます。アイコンからしてLogCatって元ネタがアレですね。
http://developer.android.com/reference/android/util/Log.html
アプリを実行すると、画面下の LogCat にログが出力されます。
LogCat タブをクリックして、右上のメッセージの種類を debug にします。
画面上の TextView に表示されていた Hello world! という文字列を取得できています。
R.java
id の参照や文字列の参照などを提供してくれるのが R.java です。xml ファイルで View に id を設定すると、 R.java の中に自動で id を追加してくれます。
こいつはかなり偉い存在のようです。
0 件のコメント:
コメントを投稿