今日は2番目の項目 Getting a Result from an Activity です。
前回、アプリに情報を送る方法をやりましたが
今回は渡したアプリから情報をまた貰い返す方法です。
例えば
アプリ経由でカメラを起動して写真を撮る
その写真をアプリで加工する。
という使い方ができるようになります。
この場合、まず前回使った startActivity( の代わりに
startActivityForResult( を使います。
static final int PICK_CONTACT_REQUEST = 1;
Intent pickContactIntent = new Intent(Intent.ACTION_PICK, new Uri("content://contacts"));
pickContactIntent.setType(Phone.CONTENT_TYPE);
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
PICK_CONTACT_REQUEST はリクエストコードといって
帰ってくる情報との同一性をここでチェックします。
そして情報が帰ってくるときライフサイクルメソッドとして
システムが onActivityResult( を呼び出します。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
上の startActivityForResult で設定した値と同じであるか?
if (requestCode == PICK_CONTACT_REQUEST) {
リザルトコードは操作の成否チェック
if (resultCode == RESULT_OK) {
data から戻ってきた情報の操作をします。
...
}
}
}
本日は以上です。