Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 多个ListFragments的片段管理最佳实践大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我计划在一个活动中包含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的片段管理最佳实践所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。