第一种就是在activity中建一个bundle,把要传的值存入bundle,然后通过fragment的setArguments(bundle)传到fragment,在fragment中,用getArguments接收,
具体代码如下
activity:
FragmentTransaction ft=fm.beginTransaction(); OneFragment oneFragment=new OneFragment(); ft.replace(R.id.frame,oneFragment,"f1"); Bundle bundle=new Bundle(); bundle.putString("dad","kkk");——这里的kkk就是要传的值 oneFragment.setArguments(bundle); ft.commit();
下面是fragment代码
Bundle bundle=getArguments(); String s=bundle.getString("dad"); Log.e("kkkkkk",s);
第二种就是在activity中定义一个public的方法,将要传递的值以return的方式返回,在fragment的onAttach方法中,调用这个方法得到值
具体代码如下
activity:
//注意返回类型
public String rr(){ return "lll"; }fragment代码://这里s是一个全局的String类型变量@Override public void onAttach(Context context) { super.onAttach(context); Log.i("fragment_111111111","onAttach"); s=((MainActivity)context).rr(); }