【问题标题】:Attach a fragment to an activity in Android将片段附加到 Android 中的活动
【发布时间】:2013-03-27 11:54:02
【问题描述】:

我的旧版 Android 应用程序使用 4 个不同的活动(FirstActivity => FourthActivity,具有相应的 xml activity_first => activity_fourth),应用程序可以在使用 Intent 的活动之间来回切换。最近我想更改用户界面以使用ViewPagerIndicator。我已经实现了 4 个这样的片段:

public class FirstFragment extends Fragment{
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        return inflater.inflate(R.layout.activity_first, null);
    }
}

问题是,如何将所有业务代码从 FirstActivity 迁移到 FirstFragment?我是否只需要找到 onCreate、onDestroy、onStart... 的等价物并复制/粘贴代码(在适当的地方添加 getActivity()、getView())?是否有任何简单的方法可以将片段附加到活动以避免这样做?

【问题讨论】:

  • 我发现this 网站有助于学习片段。还要检查here 以了解片段的生命周期。片段与 Activity 具有相同的 onCreate、onResume、onStop 等,但它也有更多。

标签: android android-activity fragment viewpagerindicator


【解决方案1】:

最简单的方法是将您在onCreate() 下的各个活动中的代码迁移到新片段中的onActivityCreated()。然后,您可以使用支持活动的 onCreate() 方法中的片段事务将片段添加到您的活动中。 android 文档很好地介绍了如何做到这一点here,并附有示例代码。如果有一些混淆,您将在您的基础活动中执行以下操作:

获取新的FragmentManager

FragmentManager fragmentManager = getFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

创建片段的新实例

ExampleFragment fragment = new ExampleFragment(); 

将该片段添加到您的FragmentManager

fragmentTransaction.add(R.id.fragment_container, fragment); 
fragmentTransaction.commit();

有许多不同的方法可以使用片段 - 例如在 ViewPagerViewSwitcher 中需要不同的实现,但这听起来像是解决了您正在尝试做的事情。

【讨论】:

    猜你喜欢
    • 2018-01-05
    • 2015-04-24
    • 1970-01-01
    • 2012-12-01
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 2013-02-03
    相关资源
    最近更新 更多