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