您的位置:首页 > 移动开发 > Android开发

Android - 封装Fragment不依赖于Activity

2017-06-01 23:47 295 查看

封装Fragment不依赖于Activity

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

可以使用newInstance()的静态方法,完成fragment实例及bundle对象的创建,

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

newInstance代码:

[java] view
plain copy

 print?

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:

[java] view
plain copy

 print?

protected Fragment createFragment() {
  

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

    return CrimeFragment.newInstance(crimeId);  

}  

获取Argument数据:

[java] view
plain copy

 print?

@Override  

public void onCreate(Bundle savedInstanceState) {  

    super.onCreate(savedInstanceState);
 

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

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: