代替リソースとTableLayoutの続きです.
新しいアクティビティの起動機能の実装は次の手順で行いました.
- 新しいアクティビティであるAlfaアクティビティのレイアウトと定義
- Alfaボタンをクリックしたときのイベント処理の実装
- 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要素の内容に次の要素を追加します.
<activity android:name=".Alfa" android:label="@string/alfa"> </activity>

0 件のコメント:
コメントを投稿