登録画面のレイアウト作成
次は「登録画面」を作成していきます。対応するアクティビティが存在しないので、新たに作成します。アクティビティを追加する際に必要なステップは、次の3つです。
- XMLでレイアウトを作成する
- ソースを作成する
- AndroidManifest.xmlにアクティビティの定義を追加する。
それでは、順番に見ていきましょう。
(1)XMLでレイアウトの作成
まず、XMLでのレイアウト作成です。「res/layout」配下に「regist.xml」というファイルを作成し、TableLayout上にTableRow(行)を追加、TableRowにビューを追加してレイアウトを作成していきます。レイアウトファイルの一部を下記に示しますので、続きは完成イメージやサンプルソースを参考にしながらチャレンジしてみてください。
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1" android:shrinkColumns="1"> <!-- 名前 --> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:text="@string/person_name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:id="@+id/personNameText" android:layout_span="2" android:hint="@string/required" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> : :中略 : </TableLayout>
![登録画面の完成イメージ](http://cz-cdn.shoeisha.jp/static/images/article/4670/regist.gif)
なお、画面に表示している文字列(名前、会社等)はXMLに直接定義しても良いのですが、国際化を考えた場合にはリソースファイル(res/values/string.xml)に定義する必要がありますので、今回もstring.xmlに下記のように文字列を定義しておきます。
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">BizCard</string> <string name="person_name">名前</string> <string name="company_name">会社</string> <string name="organization_name">組織</string> <string name="position_name">役職</string> <string name="zip_code">郵便番号</string> <string name="address">住所</string> <string name="tel1">電話1</string> <string name="tel2">電話2</string> <string name="mail">メール</string> <string name="required">必須</string> <string name="map">地図</string> <string name="map_satellite">衛星写真</string> <string name="current_location_on">現在地を中央に表示</string> <string name="current_location_off">現在地を中央に表示</string> </resources>
(2)ソースを作成する
次にソースファイルを作成します。ここでは、ファイル名は「RegistActivity.java」にします。smple.bizcardの配下に作成します。単にXMLからレイアウトを作成するだけの状態にしておきます。
/** * 登録アクティビティ */ public class RegistActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 自動生成されたR.javaの定数を指定してXMLからレイアウトを生成 setContentView(R.layout.regist); } }
(3)AndroidManifest.xmlに定義を追加
最後に、AndroidManifest.xmlに定義を追加します。AndroidManifest.xmlを開き、ListActivityの下に下記の定義を追加します。なお、本来はandroid.intent.action.MAIN
の定義は不要ですが、今回はあえて入れておきます。
<!-- 登録アクティビティの定義 --> <activity android:name=".RegistActivity" android:label="@string/app_name"> <!-- インテントのフィルタ設定 --> <intent-filter> <!-- アクティビティをアプリケーションのメイン(開始画面) --> <action android:name="android.intent.action.MAIN" /> </intent-filter> </activity>
さて、これで変更は終了です。しかし、まだ一覧画面からの遷移を実装していないため、このままでは登録画面の確認ができません。ここで、本来は不要なandroid.intent.action.MAIN
を定義しておいた事が効いてきます。
Eclipseの起動設定を開き、Launch(下図の1)を選択すると、プルダウン(下図の2)から起動するアクティビティを選ぶことができます。android.intent.action.MAIN
を指定しておいたので、RegistActivityが選択できるようになっています。RegistActivityを選択して起動すると、作成したレイアウトが確認できます。
![起動設定画面。[Launch]を選択し、プルダウンから起動するアクティビティを選択](http://cz-cdn.shoeisha.jp/static/images/article/4670/01.gif)