我的旧版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())?有没有简单的方法将片段附加到活动上以避免这样做?
答案 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();
有许多不同的方法可以使用片段 - 例如需要不同实现的ViewPager
或ViewSwitcher
,但这听起来像是在解决您尝试做的事情。