簡易ブラウザの作成(その2)

2010年5月27日(木)
谷口 岳

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> 

タオソフトウェア株式会社 代表取締役

Android OS発表直後からAndroid開発を開始 Android Market上に多数のアプリを公開、また多くの受託案件、コンサルタント等を行い、Androidに特化した企業に転換を図る URL http://www.taosoftware.co.jp/ Twitter tao_gaku

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています