android – 多个ListFragments的片段管理最佳实践

android – 多个ListFragments的片段管理最佳实践,第1张

概述我计划在一个活动中包含3个片段列表.目标是从第一个列表中选择talk选项,然后根据您在talk list中单击的内容转换到运行列表,然后在运行列表中,根据您单击的内容将转换到最终的eat list.这应该发生在片段本身(就像我拥有它)或调用活动来处理来回传递数据到片段? public class OptionsActivity extends Activity { protected T 我计划在一个活动中包含3个片段列表.目标是从第一个列表中选择talk选项,然后根据您在talk List中单击的内容转换到运行列表,然后在运行列表中,根据您单击的内容将转换到最终的eat List.这应该发生在片段本身(就像我拥有它)或调用活动来处理来回传递数据到片段?

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的片段管理最佳实践所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1126500.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存