Return 来自 Activity B 的 Activity 中的 onActivityResult,从 ActivityA 的子片段开始
Return onActivityResult in ActivityA from ActivityB, started from child fragment of ActivityA
我有两个活动,其中一个有两个片段。
我有 ActivityA 及其片段:Fragment1 和 Fragment2,以及这两个片段可以打开ActivityB。
Fragment1 是带有标记的 maps 片段,Fragment2 是 list。单击标记和列表项都会导致 ActivityB,这是一个 关于 activity 的信息,其中包含地图上特定位置的信息。
我能做的是 - 从 Fragment1 打开 ActivityB,使用:
startActivityForResult(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打开的,即list fragment.
我尝试在我的父 ActivityA 中添加上面的代码,但没有成功。
所以,我的问题是 - 当 ActivityB 从其子 Fragment1 或其子 Fragment1 中打开时,是否有一种方法可以使用 onActivityResult return ActivityB 到 ActivityA 的结果片段2?
- 在您的
Activity
的 onActivityResult 中,调用 super.onActivityResult()
和
- 如果您希望结果出现在您的片段中,请确保从您的
Fragment
执行 startActivityForResult(..)
而不是 getActivity().startActivityForResult(..)。
- 此外,如果您使用的是
nested fragments
,子片段应调用 getParentFragment().startActivityForResult(..)
,以便父片段调用其 onActivityResult 方法
我有两个活动,其中一个有两个片段。
我有 ActivityA 及其片段:Fragment1 和 Fragment2,以及这两个片段可以打开ActivityB。
Fragment1 是带有标记的 maps 片段,Fragment2 是 list。单击标记和列表项都会导致 ActivityB,这是一个 关于 activity 的信息,其中包含地图上特定位置的信息。
我能做的是 - 从 Fragment1 打开 ActivityB,使用:
startActivityForResult(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打开的,即list fragment.
我尝试在我的父 ActivityA 中添加上面的代码,但没有成功。
所以,我的问题是 - 当 ActivityB 从其子 Fragment1 或其子 Fragment1 中打开时,是否有一种方法可以使用 onActivityResult return ActivityB 到 ActivityA 的结果片段2?
- 在您的
Activity
的 onActivityResult 中,调用super.onActivityResult()
和 - 如果您希望结果出现在您的片段中,请确保从您的
Fragment
执行startActivityForResult(..)
而不是 getActivity().startActivityForResult(..)。 - 此外,如果您使用的是
nested fragments
,子片段应调用getParentFragment().startActivityForResult(..)
,以便父片段调用其 onActivityResult 方法