1

我的旧版 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())?是否有任何简单的方法可以将片段附加到活动以避免这样做?

4

1 回答 1

3

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

得到一个新的FragmentManager

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

创建片段的新实例

ExampleFragment fragment = new ExampleFragment(); 

将该片段添加到您的FragmentManager

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

有许多不同的方式可以使用片段——比如在 a ViewPagerorViewSwitcher中需要不同的实现,但这听起来像是解决了你想要做的事情。

于 2013-03-27T12:46:57.650 回答