Android编程权威指南(第10章 使用fragment argument)

10.1

从fragment中启动activity
//启动CrimeActivity(CrimeListFragment.java)
删掉上面代码加上

Intent intent=new Intent(getActivity(),CrimeActivity.class);
            startActivity(intent);

在这里插入图片描述

10.1.1附加extra信息

//创建newIntent方法(CrimeActivity.java)

 private static final String EXTRA_CRIME_ID =
            "com.bignerdranch.android.criminalintent.crime_id";

    public static Intent newIntent(Context packageContext, UUID crimeId) {
        Intent intent = new Intent(packageContext, CrimeActivity.class);
        intent.putExtra(EXTRA_CRIME_ID, crimeId);
        return intent;
    }

在这里插入图片描述

//传递Crime实例(CrimeListFragment.java)
删掉原来的,加上下面代码

Intent intent = CrimeActivity.newIntent(getActivity(), mCrime.getId());

在这里插入图片描述

10.1.2获取extra信息

//获取extra数据并取得Crime对象(CrimeFragment.java)
删掉上面代码,加上下面的代码

UUID crimeId=(UUID) getActivity().getIntent()
                .getSerializableExtra(CrimeActivity.EXTRA_CRIME_ID);
        mCrime = CrimeLab.get(getActivity()).getCrime(crimeId);

在这里插入图片描述
10.1.3
//更新视图对象(CrimeFragemt.java)

 mTitleField.setText(mCrime.getTitle());
   mSolvedCheckbox.setChecked(mCrime.isSolved()

在这里插入图片描述

10.2

1.//编写newInstance(UUID)方法(CrimeFragment.java)

  private static final String ARG_CRIME_ID = "crime_id";
public static CrimeFragment newInstance(UUID crimeId) {
        Bundle args = new Bundle();
        args.putSerializable(ARG_CRIME_ID, crimeId);

        CrimeFragment fragment = new CrimeFragment();
        fragment.setArguments(args);
        return fragment;
    }

在这里插入图片描述

2.//使用newInstance(UUID)方法(CrimeActivity.java)
将CrimeActivity.java删改为下图样式

 UUID crimeId = (UUID) getIntent()
                .getSerializableExtra(EXTRA_CRIME_ID);
        return CrimeFragment.newInstance(crimeId);

在这里插入图片描述

10.2.2

1.将crimeFragmet.java删改成下图

 UUID crimeId = (UUID) getArguments().getSerializable(ARG_CRIME_ID);

在这里插入图片描述

10.3

1.在CrimeLIstFragment.java添加下列代码

@Override
    public void onResume() {
        super.onResume();
        updateUI();
    }
 if (mAdapter == null) {

} else {        mAdapter.notifyDataSetChanged();
        }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值