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