如果我有一个viewpager,其中每个页面都是一个片段。其中一些片段想要启动其他视图/活动,所有这些请求都必须传递给父活动。因此,对于视图寻呼机中的每个页面,所有启动新活动的请求以及需要传递回片段的所有结果都要经过一个主要活动。这似乎会变得混乱。有没有更好的方法来处理这个?
由于
答案 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以获取有关这些方法的参考资料。