簡易ブラウザの作成(その2)
Activityを追加する
アンドロイド・アプリが、画面と処理がセットになったActivityを処理の単位としていることは、既に述べました。
ここでは、About画面を表示するActivityを作成します。
まずはActivytyを追加します。
新しいJavaクラス「AboutActivity」を作成します。
Eclipseから新規JAVAクラスを作成し、android.app.Activityを継承するようにしても良いですし、 MyWebView.javaをコピーしてAboutActivity.javaを作成してもかまいません。
結果としてAboutActivity.javaが新たに作成され、以下のようなコードになっていればOKです。
package com.example.mywebview;
import android.app.Activity;
public class AboutActivity extends Activity {
}
まず、About画面のレイアウトを表示する処理を追加しておきましょう。
以下のコード(赤文字部分)を追加してください。
public class AboutActivity extends Activity {
<i><font color=red>
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.about_activity);
}</font></i>
}
続いて、画面を定義します。
新たなレイアウトを追加してみましょう。
About画面のレイアウトを定義するために、about_activity.xmlをMyWebView/res/layout配下に作成します。
これも、AboutActivity.javaと同様、Eclipseを使って作成しても、既存のレイアウト・ファイルをコピーして作成してもかまいません。
以下は、レイアウト例なので、好きな形に調整してください。ただし、画面上のUI部品に対する識別子だけは、この例の通りにしてください。
識別子を変えた場合には、java側からUIにアクセスする部分も同様に変更する必要があります。
<?xml version="1.0" encoding="utf-8"?>
<<i><font color=red>LinearLayout</font></i>
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
>
<!-- スペーサー -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="50dip" >
</LinearLayout>
<!-- アプリケーション・タイトル -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<<i><font color=red>TextView</font></i>
style="?android:attr/textAppearanceMedium"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
<i><font color=red>android:text="@string/about_appname"</font></i>
/>
</LinearLayout>
<!-- スペーサー -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="50dip" >
</LinearLayout>
<!-- OKボタン -->
<i><font color=red><Button android:id="@+id/button_ok"</font></i>
style="?android:attr/textAppearanceMedium"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text=" OK "
/>
</LinearLayout>
内容について、説明していきます。
今回は、About画面を「LinearLayout」という形式で作成しています。
LinearLayoutは、レイアウト内の部品を一列に並べる場合に使います。
XMLの一番外側のLinearLayoutに「android:orientation="vertical"」という設定がされていますので、このレイアウト内に配置された部品は縦方向に並ぶことになります。
また、android:gravity="center_horizontal"という指定があることで、レイアウト内に配置された部品は水平方向にセンタリングされるようになります。
TextViewは文字を表示するための部品です。今回はTextViewを1つ配置して、リソースからabout_appnameという文字列を設定しています(文字列は後でリソースに追加します)。
あとはOKボタンです。これもどのボタンが押されたのかをプログラム側で判断できるようにIDをつけておきます。 android:id="@+id/button_ok"という設定がこれにあたります。
続いて画面に表示する文字列をリソースに追加します。
MyWebView/res/values/strings.xml に以下の定義を追加します。
<string name="about_appname">MyWebView Version.1.0.0</string>
最後に、manifestにActivityの情報を追加してActivityの追加は完了です。アプリケーションが使用するActivityはすべて manifest上に定義してしておく必要があります。
この定義を忘れると、Activity起動時にエラーが発生します。つい忘れがちな作業ですので注意しましょう。
MyWebView/AndroidManifest.xmlに以下の赤文字部分を追加してください。
-- 前略 --
</activity>
<i><font color=red><activity android:name=".AboutActivity">
</activity></font></i>
</application>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>