ボタンとテキストフィールド
では、実際にコンポーネントを利用してみることにしましょう。既に、テキストを表示するTextViewは使ってみましたから、この他に、テキストを入力する「EditText」と、プッシュボタンの「Button」を利用してみることにします。main.xmlを開き、レイアウトのXMLを修正してみましょう。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="お名前は?"
/>
<EditText
id="@+id/edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
id="@+id/button"
android:layout_width="100px"
android:layout_height="wrap_content"
android:text="click"
/>
</LinearLayout>
これで、3つのコンポーネントを組み込むことができました。新たに登場したEditTextもButtonも、属性などは特に新しいものはありません。ただし、今回は3つのコンポーネントともに、こういう項目が追加されています。
id="@+id/text"
これはTextViewのものですが、他の2つも同様に「id="@+id/○○"」といった項目が追加されていることがわかるでしょう。これは、コンポーネントにIDを追加する属性です。このID属性は、書き方に少々クセがあります。必ず、 "@+id/名前" という形で記述しなければならないのです。
このように記述すると、ファイルを保存した際に自動的にR.javaが更新されます。R.javaを開いてみてください。このように変更されているはずです。
package jp.allabout.android;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class id {
public static final int button=0x7f050002;
public static final int edit=0x7f050001;
public static final int text=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040000;
}
}
「id」というクラスが作成され、その中に「button」「edit」「text」というフィールドが自動生成されていることがわかります。これは、作成したコンポーネントをJavaのソースコード内から利用できるようにするために必要な処理なのです。――これで、レイアウトは作成できました。後は、ソースコードを修正して、ボタンをクリックしたときにちょっとした処理をさせることにしましょう。