ちょっとはまったのでメモ。
Android開発で他のインテントを呼び出して戻ってくるコールバックの onActivityResult()が呼び出せない。orz..と思っていたら、ActivityGroupの子Activityだと呼び出して紅っぽい。
一旦親ActivityのstartActivityForResult()を呼び出して、親のonActivityResult()で受取り子ActivityのonActivityResult()を呼び出してうまくいきました。
親のアクティビティーで完全にハンドリングしないとダメっぽいです。
[子アクティビティー]
親インテントのstartActivityForResult()を実行。
[親アクティビティー]
onActivityResult()が呼び出される。(現在のアクティビティーは子アクティビティーのまま)
子アクティビティーのonActivityResult()を呼び出し
[子アクティビティー]
onActivityResult()で情報受取り。
ソース
子アクティビティー側
※onActivityResult()は親から呼び出すので、
今回はとりいそぎ@Overrideじゃない&publicにしてます。
private void hoge(){ Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); getParent().startActivityForResult(intent,101); } public void onActivityResult(int requestCode, int resultCode, Intent data) { //ここで処理をする }
親アクティビティー側
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == 101){ ChildActivity child = (ChildActivity) getLocalActivityManager().getCurrentActivity(); child.onActivityResult(requestCode,resultCode,data); } }
参考サイト:
http://stackoverflow.com/questions/4268178/startactivityforresult-from-activitygroup
コメントを残す