mucchinのAndroid戦記

Androidで、起動させるActivityに値を渡す方法

Androidアプリで、Activityから別のActivityを起動させる場合に、情報や値を受け渡す方法は?

以前、Androidアプリで別のアクティビティを起動させる方法を紹介しました。
Androidアプリで別のアクティビティを起動させる方法
ただ起動させるだけでなく、起動させる側から、何らかの情報を渡したい、引き継ぎたい、という場合もあるでしょう。
今回は、その方法をご紹介します。


IntentクラスのputExtra()メソッドを使用します。
同じアプリ内の、xxxxというActivityを起動させ、例として、検索ワードと、or検索かand検索かのフラグを渡す、という場合は以下のようになります。


i = new Intent(getApplicationContext(),xxxx.class);
i.putExtra(“KEYWORD”, keywordStr);
i.putExtra(“AND”, andRadio.isChecked());
startActivity(i);


putExtraの第一引数は、キー名です。
第二引数が、渡したい値です。
startActivity()で起動させる場合も、startActivityForResult()で起動させる場合も同じように使えます。


呼び出されたActivity側では、以下のようにして受け取ります。


Intent i = getIntent();
String keyword = i.getStringExtra(“KEYWORD”);
boolean isAnd = i.getBooleanExtra(“AND”, true);


まず、getIntent()でIntent型インスタンスを取得します。
このgetIntent()は、自身の起動に使われたIntentを取得する、という意味合いです。

設定する側は、一律putExtra()で値を設定しましたが、受け取り側では、格納されている値の型によりメソッドが分かれます。


スポンサーリンク




String型:getStringExtra()

もし対応するキーが存在しないときは、戻り値はnullになります。

boolean型:getBooleanExtra()

もし対応するキーが存在しないときは、戻り値は第二引数で設定した値になります。
上記の例ではtrueですね。

int型:getIntExtra()

もし対応するキーが存在しないときは、戻り値は第二引数で設定した値になります。


とりあえず私が個人的に良く使う3種類を紹介しましたが、他にもたくさんあります。
紹介しきれないので、APIリファレンスをご覧ください。
ちなみに、配列も渡せます。


startActivityForResult()で起動されたActivityから、起動元のActivityへ戻るときも、これと同じように値を渡す事ができます。
以下のようにします。


i = new Intent();
i.putExtra(“ID”,id);
i.putExtra(“NAME”, name);
setResult(RESULT_OK, i);
finish();


今回はここまでです。


スポンサーリンク

URL :
TRACKBACK URL :

Comments & Trackbacks

  • Comments ( 1 )
  • Trackbacks ( 1 )
  1. Android初心者

    putExtraで画像のuriを指定して、アクティビティ起動
            ↓

    起動したアクティビティで受け取る

    という処理をしたいのですが、どうすればいいですか?

Leave a Reply

*
*
* (公開されません)

CAPTCHA


*

Return Top