将片段附加到Android中的活动

时间:2013-03-27 11:54:03

标签: android android-activity fragment 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);
    }
}

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

1 个答案:

答案 0 :(得分:3)

最简单的方法是将新片段中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,但这听起来像是在解决您尝试做的事情。