【Android】画面遷移:遷移先へ値を渡す

Android Tipsプログラミング

別の画面へ遷移させたい場合は、startActivityForResultメソッドを使用します。
遷移先のActivityへ値を渡すこともできます。
なお、遷移先のActivityをAndroidManifest.xmlへ登録する必要があります。

遷移元Activity:MyClass.java

import android.app.Activity;
import android.content.Intent;

public class MyClass extentds Activity{

  public void myMethod(){
    int requestCode = 1;

    // NextPageへ値を渡し、画面遷移する
    Intent it = new Intent(MyClass.this,NextPage.class);
    it.putExtra("numeric",1);
    it.putExtra("string","TEST");
    it.putExtra("boolean",true);
    it.setAction(Intent.ACTION_VIEW);
    this.startActivityForResult(it,requestCode);
  }
}

遷移先Activity:NextPage.java

import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;

public class NextPage extentds Activity{

  public void onCreate(Bundle savedInstanceState){
    int defaultInt = -1;
    boolean defaultBool = false;

    // MyClassからの値を受け取る
    Intent it = this.getIntent();
    int num = it.getIntExtra("numeric",defaultInt);
    String str = it.getCharSequenceExtra("string").toString();
    boolean bool = it.getBooleanExtra("boolean",defaultBool);

    // MyClassへ復帰値を渡し、終了する
    this.setResult(Activity.RESULT_OK,it);
    this.finish();
  }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.myclass"
    android:versionCode="1"
    android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
      <activity android:name=".MyClass" 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="NextPage"></activity>
    </application>
    <uses-sdk android:minSdkVersion="4" />
  </manifest>

参考: 遷移元へ値を返す
参考: オブジェクトの受け渡し
参考: ページをめくる

コメント