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~
- インテントの取得
Intent 変数名 = getIntent();
- データの受け取り
Bundle 変数名 = in.getExtras();
- データを受け取ったか判定し処理を記述 記述例(値が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の変数名);