android中片段之间的StartActivityForResult()和OnActivityResult()功能

时间:2013-07-09 09:27:05

标签: android android-fragments

我在我的android应用程序中有两个片段,当我从一个片段移动到另一个片段并做了一些工作但回来时我想将一些结果传递给我的第一个片段。这是否可能,如果是的话意味着请帮助

2 个答案:

答案 0 :(得分:0)

使用回调在片段Developer Android

之间进行交互

答案 1 :(得分:0)

最好让活动对其片段应用更改,而不是直接在片段之间传递值。让您的Activity使用onQuery(Bundle数据)和onResult(Bundle数据)方法实现FragmentListener接口。

在每个片段中创建一个FragmentListener变量,然后覆盖每个片段的onAttach():

 public void onAttach(Activity activity) {
    super.onAttach(activity);

    //---register parent activity for events---
    try{
        fragmentListener = (FragmentListener) activity;
    }catch (ClassCastException e)
    {
        throw new ClassCastException("Parent activity must implement interface FragmentListener.");
    }
  }

这将强制您的子片段自动注册到父Activity。

现在您可以从片段中调用您的活动。

另一方面,您的Activity始终可以使用getFragmentManager()。findFragmentByTag(“fragmentA”)或findFragmentById(“FragmentA”)搜索片段。如果它可以找到你的片段,那么它可以将它转换到你的FragmentA类并调用它的方法。可以使用FragmentB或任何其他片段进行相同的操作..