複数のActivity

android-multiple-activity.png

サンプルプログラム

ViewTransition.zip

目的

複数のActivityをする目的は?
画面遷移するため

全体の手順

順番はどこからはじめてもいい

  • 他の画面用のActivity.javaのクラスを作る
  • 他の画面用のレイアウトXMLファイルを/res/layout/以下に作る
  • AndroidManifest.xmlに他の画面用のActivityタグを加える

他の画面用のActivityを作る

package com.example.myfirstapp;
 
import android.app.Activity;
import android.os.Bundle;
 
public class NextActivity  extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_next);
    }
}

ポイント

  • Activityクラスからの派生クラスにする(extends Activity)
  • onCreate()を追加する

他の画面用のXML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="次の画面だよー" />
 
</LinearLayout>

androidManifest.xmlに新しい画面用のActivityを加える

書き加える場所は<Application>タグの内側

<activity android:name=".NextActivity"></activity>

ボタンを押したら次の画面に遷移するコードを書く

@Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Log.e("main","押されたのはこれ"+v.getId());
        switch(v.getId()) {
 
        case R.id.button1:
            Log.e("main","次の画面へ移動!");
            // インテントのインスタンス生成
            Intent intent = new Intent(MainActivity.this, NextActivity.class);
            // 次画面のアクティビティ起動
            startActivity(intent);
            break;
        }
    }

Intent

Intentはアプリケーション間の連携機能で異なるアプリケーションを繋ぐランタイム(機能・モジュール)です。付加情報(配列や、文字列、整数型など)を別アプリケーションに通知でき、他のActivityの呼び出し方法としてよく使われます。

明示的Intent

Activityをクラス名で指定して呼び出す方法

暗黙的Intent

動作(振る舞い)で呼び出し、Activityは指定しない方法。

エラーの場合

AndroidManifext.xmlの<activity 内の名前のつづりは間違ってないか?

Have you decleared this class in AndroidManifest.xml?

というエラーメッセージが最初の方に出てくるはず

08-22 14:55:13.465: E/fb4a(:<default>):MmsConfig(12550): MmsConfig.loadMmsSettings mms_config.xml missing uaProfUrl setting

AndroidManifest.xmlに

<activity android:name=".NextActivity"></activity>

を書き加えてない場合にこれが起こった。

サポートサイト Wikidot.com