2010年12月28日火曜日

新しいアクティビティの実装

このエントリーをはてなブックマークに追加
ボタンをクリックしたときに,新しいアクティビティを起動する機能を実装しました.新しいアクティビティを定義して起動する方法の手順をメモしました.




代替リソースとTableLayoutの続きです.


新しいアクティビティの起動機能の実装は次の手順で行いました.
  1. 新しいアクティビティであるAlfaアクティビティのレイアウトと定義
  2. Alfaボタンをクリックしたときのイベント処理の実装
  3. Alfaアクティビティをマニュフェストファイルへ登録

Alfaアクティビティのレイアウト

/LayoutTest/res/layout/alfa.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/alfa" />
</LinearLayout>


Alfaアクティビティの定義

/LayoutTest/src/org/example/layout/Alfa.java
package org.example.layout;

import android.app.Activity;
import android.os.Bundle;

public class Alfa extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.alfa);
    }
}


リソースIDの追加

main.xmlのalfaに対応するButtonに次の属性を追加します.

/LayoutTest/res/layout/main.xml
/LayoutTest/res/layout-land/main.xml

android:id="@+id/alfa"

@+id/alfaという構文は他のファイルから参照ができるリソースIDを作ります.リソースIDはクリックリスナーの設定に使います.


クリックイベントの設定

/LayoutTest/src/org/example/layout/LayoutTest.java
package org.example.layout;

import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;

public class LayoutTest extends Activity implements OnClickListener{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        View alfaButton = this.findViewById(R.id.alfa);
        alfaButton.setOnClickListener(this);
    }

    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.alfa:
            Intent i = new Intent(this, Alfa.class);
            startActivity(i);
        break;
        }
    }
}

findViewByIDメソッドはalfaというリソースIDに基づいてビューを探します.setOnClickListenerメソッドはクリックされたオブジェクトを知らせる役割を持っており,引数の型はOnClickListenerです.OncClickListenerインタフェースはonClickメソッドのシグネチャを持っており,onClickメソッドでクリックされたときのイベントを記述します.(うーん,このあたりはよく分からないので,イベント実装のためのおまじないと理解して流します)


マニュフェストへ登録

アクティビティはすべてマニュフェストファイルAndroidManifest.xmlに登録する必要があるそうです.AndroidManifest.xmlを開いてapplication要素の内容に次の要素を追加します.

/LayoutTest/AndroidManifest.xml
<activity 
    android:name=".Alfa"
    android:label="@string/alfa">
</activity>


実行結果

Alfaボタンを押すと次の画面が表示されました.



イベントの実装はいろんなファイルが関わってきて,ややこしい部分です.

0 件のコメント:

コメントを投稿