【问题标题】:ViewPager + Fragments Starting new ActivitiesViewPager + Fragments 开始新的活动
【发布时间】:2013-02-02 22:46:40
【问题描述】:

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    您还可以在您的Fragments 中启动Activity 以获得结果。

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

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

    这似乎会变得一团糟。有没有更好的处理方法?

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

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

    【讨论】:

    • 感谢您的回答,我不知道可以从片段内部调用这些方法,这使我的生活和代码变得更加轻松!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多