将片段附加到 Android 中的 Activity

Enz*_*ran 1 android fragment android-activity viewpagerindicator

我的旧版本 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,如何将FirstActivity的业务代码全部迁移到FirstFragment呢?我是否只需要找到 onCreate、onDestroy、onStart... 的等效项并复制/粘贴代码(在适当的情况下添加 getActivity()、getView())?有没有简单的方法将片段附加到活动以避免这样做?

Rar*_*arw 5

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

获取新的FragmentManager

FragmentManager fragmentManager = getFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Run Code Online (Sandbox Code Playgroud)

创建片段的新实例

ExampleFragment fragment = new ExampleFragment(); 
Run Code Online (Sandbox Code Playgroud)

将该片段添加到您的FragmentManager

fragmentTransaction.add(R.id.fragment_container, fragment); 
fragmentTransaction.commit();
Run Code Online (Sandbox Code Playgroud)

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