Activity加载Fragment时的值传递的方式:
(1)Activity中的值传递给Fragment
(2)Fragment中的值传递给Activity
(3)Fragment中的值传递给Fragment
下面我们就详细的说明以下每种方式的传递值:
1、Activity中的值传递个Fragment
建议的传值方式是通过Bundle来传递,而不是直接作为Fragment的构造参数传递。在Activity中创建bundle数据包,并调用Fragment的setArguments(Bundle bundle)方法,即可将Bundle数据包传给Fragment。在Fragment中用getArguments方法得到传递过来的值。
MainActivity传值:
public class MainActivity extends Activity {
private FragmentManager manager;
private FragmentTransaction transaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.Activity_main);
manager = getFragmentManager();
Fragment1 Fragment1 = new Fragment1();
Bundle bundle = new Bundle();
bundle.putString("str", "传递的数据");
Fragment1.setArguments(bundle);
transaction = manager.beginTransaction();
transaction.add(R.id.contents, new Fragment1());
transaction.commit();
}
}
Fragment1接收值:
public class Fragment1 exte