ViewPager + Fragments开始新活动

时间:2013-02-02 22:46:41

标签: android-fragments android-activity actionbarsherlock android-viewpager

如果我有一个viewpager,其中每个页面都是一个片段。其中一些片段想要启动其他视图/活动,所有这些请求都必须传递给父活动。因此,对于视图寻呼机中的每个页面,所有启动新活动的请求以及需要传递回片段的所有结果都要经过一个主要活动。这似乎会变得混乱。有没有更好的方法来处理这个?

由于

1 个答案:

答案 0 :(得分:3)

  

因此,对于视图寻呼机中的每个页面,所有启动新活动的请求以及需要传递回片段的所有结果都要经过一个主要活动。

由于您的Fragments与其父Activity的生命周期一起生存和死亡,是的,他们必须使用其父级来启动并接收来自其他Activities的结果。

从API 11开始,在最新的支持库中,您可以从Fragments内部调用这些方法,然后将从父级Activity为您执行这些操作。

    Intent intent = new Intent(getActivity(), SomeActivityToStart.class);
    startActivity(intent);

您还可以在Activity内找到Fragments的结果。

    Intent intent = new Intent(getActivity(), SomeActivityToStart.class);
    startActivityForResult(intent, REQUEST_CODE);

然后覆盖onActivityResult(int requestCode, int resultCode, Intent data)中的Fragment,以便从父Activity获取结果。

  

这似乎会变得混乱。有没有更好的方法来处理这个?

由于您不必自己管理父Activity和孩子Fragment之间的沟通,我认为这不应该太乱。

结帐http://developer.android.com/reference/android/app/Fragment.html以获取有关这些方法的参考资料。