主要包括Activity向Fragment传递数据,Fragment向Activity传递数据,以及两个Fragment之间的通信。
1. Activity向Fragment传值
- new一个
Bundle
对象,并利用相关的put
方法,如putString
将关数据放如Bundle
对象之中。
Bundle bundle = new Bundle();
bundle.putString("info"/*HashMap的key*/, info/*相关的数据*/);
- 利用
Fragment
对象的setArgument
方法将Bundle
放入到fragment
对象之中,并用新的fragment
对象替换掉原来的fragment
ResultFragment rf = new ResultFragment();
rf.setArguments(bundle);
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.content_layout, rf);
transaction.commit();
- 在
fragment
中利用getArguments
方法将Bundle对象从fragment
中取出,并利用TextView对象显示其内容。
Bundle bundle = getArguments();
if (bundle != null) {
String info = bundle.getString("info");
tv_show.setText(info);
}
- 实现效果:
在EditText中输入文本内容之后点击【点击传值】按钮,Fragment接收到数据之后,在其TextView中显示出来。