我有两个活动,其中一个有两个片段。
i具有 activitya 及其片段: fragment1 和 fragment2 ,并且这两个都可以打开 activityb 。
fragment1是带有标记的映射片段,而fragment2是 list 。单击时,标记和列表项目会导致Activityb,这是关于活动的,并在地图上的某些位置上提供信息。
我能够做的是 - 从fragment1使用:
打开活动bstartActivityForResult(intent, RESTAURANT_DESCRIPTION);
然后在我的片段中得到这样的结果:
public void onActivityResult(int requestCode, int resultCode, Intent intent){
switch(requestCode){
case RESTAURANT_DESCRIPTION:
//calling my method
ZoomToMarkerFragment();
//maybe call reload method from ListFragment
break;
case ADD_RESTAURANT: // TODO
break;
}
}
和上面的代码在我从fragment1 中打开Activityb时,给了我想要的结果fragment2,即列表fragment。
我尝试在我的父活动中添加上面的代码,但它不起作用。
那么,我的问题是 - 是否有一种方法可以使用onActivityResult,当它从其子女fragment1或其子女fragment2 打开时,将Activityb的结果返回到活动。
- 在您的
Activity
的OnActivityResult中,请致电super.onActivityResult()
和 - 还要确保从
Fragment
中进行startActivityForResult(..)
而不是getActivity((。startActivityForresult(..(,如果您希望结果放在片段中。 - 另外,如果您使用的是
nested fragments
,孩子片段应调用getParentFragment().startActivityForResult(..)
,以便父母片段将其on Activitive ressult方法称为