public class OptionsActivity extends Activity { protected TalkFragment talk; protected RunFragment run; protected EatFragment eat; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); talk = new TalkFragment(); run = new RunFragment(); eat = new EatFragment(); } }public class TalkFragment extends ListFragment { private Cursor mCursor; int mCurCheckposition = 0; @OverrIDe public voID onActivityCreated(Bundle savedState) { super.onActivityCreated(savedState); } @OverrIDe public voID onListItemClick(ListVIEw l,VIEw v,int pos,long ID) { mCurCheckposition = pos; // We can display everything in-place with fragments. // Have the List highlight this item and show the data. getListVIEw().setItemChecked(pos,true); // Check what fragment is shown,replace if needed. RunFragment run_frag = (RunFragment) getFragmentManager().findFragmentByID(R.ID.fragment_run); if (run_frag == null || run_frag.getShownIndex() != pos) { run_frag = RunFragment.newInstance(pos); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.ID.details,details); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); ft.commit(); } } }
这显然只是嗤之以鼻,但你明白了.如果我这样做,我不确定如何正确地传递某些参数片段.理想情况下,RunFragment会根据在TalkFragment中单击的项目的ID知道要显示的内容.这些应该通过活动吗?
解决方法 我通常这样做的方法是让Activity成为处理碎片的交通警察.您的onListItemClick实现可以告诉Activity它想要做什么:public class OptionsActivity extends Activity { protected TalkFragment talk; protected RunFragment run; protected EatFragment eat; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); talk = new TalkFragment(); run = new RunFragment(); eat = new EatFragment(); } public voID showRunFragment() { showFragment(R.ID.fragment_run); } public voID showEatFragment() { showFragment(R.ID.fragment_eat); } public voID showFragment(int fragmentID) { // Check what fragment is shown,replace if needed. ... }}public class TalkFragment extends ListFragment { private Cursor mCursor; int mCurCheckposition = 0; @OverrIDe public voID onActivityCreated(Bundle savedState) { super.onActivityCreated(savedState); } @OverrIDe public voID onListItemClick(ListVIEw l,true); getActivity().showRunFragment() } }总结
以上是内存溢出为你收集整理的android – 多个ListFragments的片段管理最佳实践全部内容,希望文章能够帮你解决android – 多个ListFragments的片段管理最佳实践所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)