2013年4月21日日曜日

View に id をつけて参照する

Android の View には id を指定することで、プログラムから参照できるようになります。
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 件のコメント:

コメントを投稿