asciiさんの記事でintentについての記載があったので、
復習に使わせていただきました。
■INTENTで設定画面に移動する。
Intent intent = new Intent(Settings.ACTION_DATE_SETTINGS); startActivity(intent);
と設定すると設定画面に移動ができる。ここの値で、アンドロイドで設定している電話や、webブラウザー、地図、音楽プレイヤーなどを呼び出せる。
■INTENTで他のクラスに移動をする。
Intent intent = new Intent(this,***.class);
として「コンストラクタは自分自身と呼び出し先となるクラス名」なので、簡単にできました。
移動先では、returnIntentと言うクラスが勝手にできるようで(未確認)
※上記できませんでした。自分で作成をする必要があります。
任意で戻る場合
setResult(RESULT_OK, returnIntent); finish();
戻るボタンなどで、戻る場合
returnIntent = new Intent(); setResult(RESULT_CANCELED, returnIntent); 上記のようになる。 この値は戻り先でも利用できる為、戻り方を調べる事ができる。
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { if (requestCode == R.id.IntentRequestGeneral ){ String returnMessage = data.getStringExtra(this.getString(R.string.ExtraString01)); message.setText(this.getString(R.string.MainDispString)+" " +returnMessage); } } else { Toast.makeText(this, "onActivityResult NOT RESULT_OK", Toast.LENGTH_SHORT).show(); } }
どうやら、リクエストコードとは、アクティビティを結びつけてどのアクティビティからの戻りなのか、確認できるようである。
※訂正 上記が自動で帰ってくると認識していましたが、インテント発行をstartActivityでした場合にはResultのイベントは実行されないので、resultでイベントを受け取りたい場合にはstartActivityForResultで他のIntentに移動しておく必要がありました。
逆引きandroid入門さんでは、REQUEST_CODEを一緒に発行できるようだ。
// インテント発行 startActivityForResult(intent, REQUEST_CODE);
以上で簡単にintentにREQUEST_CODEを含んだ状態で発行する事で、コードとアクティビティを結びつける事ができた。