Androidアプリ開発で、Activityを複数用意して切り替える

雪はほぼなくなり自転車も乗れる秋田県某所より、こんにちは。
コンちゃんこと佐々木です。

Android開発で、一つのアプリにおいて複数のActivityを切り替える方法を覚えたのでメモします。

現在制作中のアプリでは、起動直後の画面(WelcomeScreenActivity.java、welcome_screen_activity.xml)といろいろ稼働中の画面(MyActivity.java、activity_my.xml)の二つのActivityを使っているので、これを例にメモします。

 

アプリ起動直後、最初に見る画面はwelcome_screen_activity.xmlでデザインします。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#6c000d"
    android:weightSum="1">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="日 本 語"
        android:id="@+id/button_nihongo"
        android:layout_gravity="center_horizontal"
        android:textSize="36sp" />

</LinearLayout>

 

「日 本 語」というボタン1個だけ。

WelcomeScreenActivity.javaからMyActivity.javaに、ボタンを押したときに画面切り替えしたい!
そんなときは、ボタンを配置したアクティビティ(本例だとWelcomeScreenActivity.java)に以下を書こう!

((Button)findViewById(R.id.button_nihongo)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent varIntent = new Intent(WelcomeScreenActivity.this, MyActivity.class);
                startActivity(varIntent);
            }
});

 

ボタンのリスナーに、4-5行目を書く。
4行目は、Intent(自分のcontext, 飛ばす先.class);です。
たった2行書くだけでActivityを切り替えられる!

画面切り替えコードを書いて完成したWelcomeScreenActivity.javaは、以下のとおり。

package conchan.akita.jp.(秘密☆);

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

/**
 * Created by Sasaki on 2015/02/21.
 */
public class WelcomeScreenActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.welcome_screen_activity);

        // 2015.02.28 added by conchan_akita
        ((Button)findViewById(R.id.button_nihongo)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent varIntent = new Intent(WelcomeScreenActivity.this, MyActivity.class);
                startActivity(varIntent);
            }
        });
        // added END.
    }
}

 

コードが短い!
でもこれで完成形!

それでは失礼。

 

☆開発環境
Android Studio(Beta)0.8.9
Windows 7 Professional
Core i5-3470@3.20GHz
メモリ8GB(4GBのころは開発つらかった…)
エミュレータはGenymotion上のNexus7(4.2.2)。

☆参考
金城俊哉さん著『Androidアプリ開発パーフェクトマスター』第1版第1刷のChapter18「アクティビティ間で通信する」
ISBN978-4-7980-4161-2 C3055
販売1ヵ月後くらいに買いました。めちゃくちゃ参考にしています。

☆付録:AndroidManifest.xml
Activityは全部マニフェストに書く。
最初に表示するActivityにはintent-filterを書く。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="conchan.akita.jp.(やっぱり秘密☆)" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/himituno_icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <!-- Welcome Screen activity 2015.02.21 -->
        <activity
            android:name=".WelcomeScreenActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            </activity>
        <!-- Welcome Screen activity END. 2015.02.21 -->
        <!-- メイン画面activity 2015.02.21 -->
        <activity
            android:name=".MyActivity"
            android:label="@string/app_name" >

        </activity>
        <!-- メイン画面activity END. 2015.02.21 -->
    </application>
    <uses-permission android:name="android.permission.INTERNET" />

</manifest>

 

コメントを残す

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)