3

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

谢谢

4

1 回答 1

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从 parent 获取结果Activity

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

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

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

于 2013-02-04T14:08:01.457 回答