Android Activity間ジャンプ・パスまとめ


Activity間のジャンプは、Intentクラスを使用してデータを転送します.Intentオブジェクトをインスタンス化すると、ジャンプ先のActivityを設定し、データを渡さず、Intentパッケージでデータを渡すことができます.
Intentには6つの構造方法があり、自分で選択することができ、よく使われるのはIntent(action)、Intent(Context,Class>)、空のパラメータ構造です.
startActivity(intent)とstartActivity ForResult(intent,int requestCode)を直接使用してジャンプできます.requestCodeは0以上です.
データをカプセル化してからジャンプすることもできます.データをカプセル化するには、IntentクラスのメソッドputExtra(String key,value)を直接使用し、Mapに似ています.Bundleオブジェクトをカプセル化してからputExtrasパッケージを呼び出すこともできます.
ターゲットActivityではgetIntent()メソッドを使用してIntentオブジェクトを取得し、intentを通過することができる.getXXXXExtra(key)は、対応する値またはgetExtras()はBundleオブジェクトを取得し、値を抽出すればよい.
第2のジャンプ方式を使用すると、ターゲットActivityでsetResult(int resultCode,intent)メソッドが呼び出され、このActivityが終了すると最初のActivityに戻ります.一般的に自分でfinish()メソッドを呼び出して自分を終了します.戻るとonActivity Result(requestCode,resultCode,intent)メソッドが直接コールバックされ、codeによってActivityが検証され、intentによって値が伝達されます.
startActivity ForResultを使用してジャンプバックした後、ターゲットActivityでgetIntent()メソッドを使用するか、new Intentオブジェクトを再newするかにかかわらず、requestCodeとresultCodeは両方のActivityに対して一意であり、決定された1対1の対応である.
次のコードを貼ります.
最初のActivityプライマリコード:
= (EditText)findViewById(R.id.);
    = (Button)findViewById(R.id.);

    .setOnClickListener(View.OnClickListener() {
        onClick(View view) {
            Intent intent = Intent(MainActivity., Main2Activity.);
            intent.putExtra(, .getText().toString());
            startActivityForResult(intent, );

        }
    });
}

onActivityResult(requestCode, resultCode, Intent data) {
    .onActivityResult(requestCode, resultCode, data);
    (requestCode==){
//if(resultCode == 0x002){

        Toast.(, data.getStringExtra(), Toast.).show();
    }
    Log.(, );
}

ターゲットActivityプライマリコード:
= (EditText)findViewById(R.id.);
= (Button)findViewById(R.id.);

String str = getIntent().getStringExtra();
.setText(str);
String str2 = str+;
.setOnClickListener(View.OnClickListener() {
    onClick(View view) {
        Intent intent = Intent(Main2Activity., MainActivity.);
        intent.putExtra(, );

        setResult(, intent);
        finish();
    }
});
      ,    。