アプリ内で違う画面(ページ)に移動する簡単な方法が2つあります。
まずは1つ目の違うActivityに移動する方法からご紹介します。
異なるActivityへの移動はintentという形式で連携しながら遷移します。
名前: 任意の名前
スーパークラス: android.app.Activity
今回はこんな感じにしました
test2.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"> <TextView android:layout_height="wrap_content" android:text="ページ移動しました" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView1" android:layout_width="wrap_content"> </TextView> </LinearLayout>
package com.McBechtel.test; import android.app.Activity; import android.os.Bundle; public class TestActivity2 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test2); } }
setContentView(R.layout.test2);
の部分ですね。
マニフェストと聞くと、最近の政治を思い浮かべてしまいますが
マニフェストファイルとはActivityを管理するファイルです。
全Activityリストや、最初に起動するActivityは何?などの情報が記載されています。
Activityを追加した場合はこのマニフェストファイルに記載が必要です。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.McBechtel.test" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".TestActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".TestActivity2" android:label="@string/app_name"> </activity> </application> </manifest>
<activity android:name=".TestActivity2" android:label="@string/app_name"> </activity>
が追加した部分です。
1個目のタグ内の部分が
アプリ起動時に呼ばれるActivityに関する記述です。
<Button android:text="移動" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button>
ボタンクリック時の動作部分に追加
Intent intent = new Intent(this, TestActivity2.class); startActivityForResult(intent, 0);
これが移動させるためのコードになります。 これをボタンを押したら呼ばれるonClick内に記載すればOKです!
public class TestActivity extends Activity implements OnClickListener { /** Called when the activity is first created. */ private Button button1,button2; //ボタン用変数(1) private TextView text1; //テキスト用変数(2) private int clickcount=0; //ガァ~表示用 カウンター @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //(1)で作成した変数と、XMLで作ったボタン(button1)を紐付け button1=(Button)findViewById(R.id.button1); //button1のクリックを通知する機能を実装 button1.setOnClickListener(this); //(1)で作成した変数と、XMLで作ったボタン(button1)を紐付け button2=(Button)findViewById(R.id.button2); //button1のクリックを通知する機能を実装 button2.setOnClickListener(this); //(2)で作成した変数と、XMLで作ったテキストを紐付け text1 =(TextView)findViewById(R.id.textView1); } //--------------------------- //ボタンがクリックされたら呼ばれる関数 //--------------------------- public void onClick(View v) { // TODO 自動生成されたメソッド・スタブ if(v==button1){ //ボタン1の場合 if(clickcount%2==0){ text1.setText("gaa"); //text1をがぁ~に }else{ text1.setText(" "); //text1を消す } clickcount++; }else if(v==button2){ Intent intent = new Intent(this, TestActivity2.class); startActivityForResult(intent, 0); } } }