Fragment与宿主Activity通信
2018-08-22 本文已影响0人
爱做梦的严重精神病患者
1.Fragment与宿主Activity通信
在Activity中可以通过FragmentManager.findFragmentById()的方法获取到Fragment
当Fragment与Activity要进行数据传输的时候可利用fragment.setArguments()与getArguments()方法。
以下为例:当Activity创建Fragment的时候利用Fragment的static newInstance()方法,将需要的参数传递进去。接着,在newInstance()方法中将参数保存在Argument中,接着从Argument中取出。
CrimeFragment.java
public class CrimeFragment extends Fragment {
public static CrimeFragment newInstance(int id) {
Bundle args = new Bundle();
args.putInt("ID", id);
CrimeFragment fragment = new CrimeFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
int id = getArguments().getIntent("ID");
}
}
CrimeActivity.java
public class CrimeActivity extends SingleFragmentActivity {
@Override
protected Fragment createFragment() {
return CrimeFragment.newInstance(id);
}
}