第十章 fragment argument
- fragment获取Intent中的数据有两种方法。
- 获取extra中的信息。
直接在fragment中获取。但这样造成的问题是破坏了fragment的封装,无法再用于其他的activity。
故转而使用fragment argument。
UUID crimeId = (UUID) getActivity().getIntent()
.getSerializableExtra(CrimeActivity.EXTRA_CRIME_ID);
- 利用fragment argument。
要创建fragment argument,首先创建一个Bundle对象。然后利用putxxx()
方法放入argument(argument是一个键值对结构)
在创建fragment之后,添加到activity之前调用setArgument(Bundle)
方法将Bundle设置给fragment。
public static CrimeFragment newInstance(UUID crimeId){
Bundle args = new Bundle();
args.putSerializable(ARG_CRIME_ID,crimeId);
CrimeFragment fragment = new CrimeFragment