我有两个活动,其中一个有两个片段。
我的 ActivityA 及其片段: Fragment1 和 Fragment2 ,两者都可以打开 ActivityB 。
Fragment1是带有标记的地图片段,Fragment2是列表。点击时,标记和列表项都会导致ActivityB,这是一个关于活动,其中包含有关地图上某个位置的信息。
我能做的是 - 使用:
从Fragment1打开ActivityBstartActivityForResult(intent, RESTAURANT_DESCRIPTION);
然后在我的Fragment1中我得到了这样的结果:
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,即列表片段。
我尝试在我的父ActivityA中添加上面的代码,但它不起作用。
所以,我的问题是 - 是否可以使用onActivityResult将ActivityB的结果返回给ActivityA,当它从其子Fragment1或其子Fragment2 打开时?
答案 0 :(得分:1)
Activity
的onActivityResult中,致电super.onActivityResult()
和Fragment
执行startActivityForResult(..)
而不是使用getActivity()。startActivityForResult(..)。 nested fragments
,则子片段应调用getParentFragment().startActivityForResult(..)
,以便父片段将具有名为