zoukankan      html  css  js  c++  java
  • Android

    封装Fragment不依赖于Activity


    本文地址:http://blog.csdn.net/caroline_wendy


    Fragment直接托管activity的intent会破坏Fragment的封装性。


    能够使用newInstance()的静态方法,完毕fragment实例及bundle对象的创建,

    然后将argument放入bundle中,最后再附加给fragment.


    newInstance代码:

        public static CrimeFragment newInstance(UUID crimeId) {
            Bundle args = new Bundle();
            args.putSerializable(EXTRA_CRIME_ID, crimeId);
            CrimeFragment fragment = new CrimeFragment();
            fragment.setArguments(args);
    
            return fragment;
        }

    Activity创建Fragment:

        protected Fragment createFragment() {
    //        return new CrimeFragment();
            UUID crimeId = (UUID)getIntent().getSerializableExtra(CrimeFragment.EXTRA_CRIME_ID);
            return CrimeFragment.newInstance(crimeId);
        }

    获取Argument数据:

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    //        UUID crimeId = (UUID)getActivity().getIntent().getSerializableExtra(EXTRA_CRIME_ID);
            UUID crimeId = (UUID)getArguments().getSerializable(EXTRA_CRIME_ID);
            mCrime = CrimeLab.get(getActivity()).getCrime(crimeId); //依赖activity获取crime
        }





  • 相关阅读:
    移动端前端布局的必看前提
    单词统计
    用户场景分析
    学习进度(九)
    团队项目
    学习进度(二)
    数据可视化
    大二下,学习进度(一)
    求最大子数组的和
    构建之法3
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5326811.html
Copyright © 2011-2022 走看看