Fragment之间是不可以直接进行数据交换的,需要借助依附的activity。自己实践的例子是在相机preview的fragment中得到相机支持的图像size。将size传递到settingfragment中进行相机支持图片的尺寸显示,以便用户可以自己设定存储照片的尺寸。
通过以下步骤完成。
- 将数据传递到activity中
Intent intent = new Intent(getActivity(), SettingsActivity.class);
intent.putExtra("pref_key_picture_size",mSupportedPictureSize);
此处的activity是settingfragment依附的SettingsActivity
- Activity中接收数据
`protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent=getIntent();
int[] picture_size=intent.getIntArrayExtra("pref_key_picture_size");
mSupportedPictureSize=picture_size;
Bundle bundle=new Bundle();
bundle.putIntArray("pref_key_picture_size",picture_size);
}
- Activity中的数据传递到fragment
也在onCreate里实现
Bundle b = getActivity().getIntent().getExtras();
mSupportedPictureSize = b.getIntArray("pref_key_picture_size");
这样就完成了fragment之间的数据传递。