androidSutudio intent

インテント

【明示的インテント

~MainActivity~

1 . コンポーネントの指定

Intent 変数名 = new Intent(this,表示させたいActivityのクラスファイル.class);

2 . 引数で指定したインテントによる処理をandroidシステムに依頼

値を受け取らない場合

startActivity(実行していインテントの変数名);

値を受け取りたい場合

startActivityForResult(インテントの変数名,RequestCode);

3 . 値を送信

インテントの変数名.putExtra("キー名",送信する内容);

4 . 受け取った値の処理を記述

protected void onActivityResult(int requestCode,int resultCode,Intent data){
実行する処理
}
  • 第一引数

インテントをスタートさせるstartActivityForResult(インテントの変数名,RequestCode)の第二引数で指定したRequestCodeと返ってきたときに実行されるメッソドの第一引数のRequestCodeでどの値か区別する

  • 第二引数 resultCode
Activity.RESULT_OK
Activity.RESULT_CANCELED

~SubActivity~

  1. インテントの取得
Intent 変数名 = getIntent();
  1. データの受け取り
Bundle 変数名 = in.getExtras();
  1. データを受け取ったか判定し処理を記述 記述例(値がstringの場合)
if(Bundleの変数名 !== null){
String 変数名 = Bundleの変数名.getString("キー名");
実行したい処理
}

4 . 返信するデータを設定

Intentの変数名.putExtra("キー名",値);
setResult(Activity.RESULT_OK,intentの変数名);
finish(); // mainActivityにデータを送信し終了

【正常終了】 Activity.RESULT_OK;

【キャンセル】 Activity.RESULT_CANCELED;

【暗黙的インテント

実行できるアプリケーションが複数存在する場合は選択画面が表示される

①Intentに目的のActionを設定

setAction(Intent.ACTION_○○〇);

②Dataの設定(必要があれば)

setData(Uri.parse(" ");

③適切なTypeを設定

setType(" ");

④Intentを開始

startActivity(intentの変数名);