ActivityGroup内で表示している子のActivityから、
ChildActivity.java
startActivityForResult(intent);
とかしても、onActivityResultが呼ばれない。親のActivityGroup#onActivityResultに来ている気配もない。
【対処法】
親のActivityGroupからstartActivityForResultを呼ぶと、親のonActivityResultには来るので、そこから子Activityにdispatchしてやる必要がある。
親から呼んでもらえるように、子のonActivityResultはpublicにしてやる。
ChildActivity.java
@Override
public void startActivityForResult(Intent intent, int requestCode) {
getParent().startActivityForResult(intent, requestCode);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
){
// 処理
}
ParentGroup.java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Activity child = getLocalActivityManager().getCurrentActivity();
if( child instance of ChildActivity ){
((ChildActivity)child).onActivityResult(requestCode,resultCode,data);
}
}