activity 给 fragment 传递参数

Posted yuguangyuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了activity 给 fragment 传递参数相关的知识,希望对你有一定的参考价值。

在activity中加载 frament,并传递给它参数
//setArguments //1.实例化Fragment Fragment f1 = new Fragment1(); //2.实例化一个Bundle对象 Bundle bundle = new Bundle(); //3.存入数据到Bundle对象中 bundle.putString("msg1","这是由Activity发往Fragment的数据"); //4.调用Fragment的setArguments方法,传入Bundle对象 f1.setArguments(bundle); //5.添加/替换显示的Fragment transaction.replace(R.id.container,f1);

 

在fragment.java, 接收到参数

    //Fragment创建视图
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        Log.e("TAG","onCreateView--Fragment视图创建好了");
        View v = inflater.inflate(R.layout.fragment_fragment1, container, false);

        Bundle b = getArguments();
        String msg1 = b.getString("msg1");
        ((TextView)v.findViewById(R.id.txt1)).setText(msg1);

        return v;
    }

 

也可以通过 public void onAttach(Context context)

来得到activity,然后操作activity。

MainActivity.java

public class MainActivity extends AppCompatActivity {
  public
String msg = "How are you ";
}

 

fragment.java

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        String msg = ((MainActivity)context).msg;
        Toast.makeText(context,msg,Toast.LENGTH_SHORT).show();
        Log.e("TAG","onAttach--Fragment与Activity关联");
    }

 

以上是关于activity 给 fragment 传递参数的主要内容,如果未能解决你的问题,请参考以下文章

Activity和Fragment之间的数据传递

Activity和Fragment之间的数据传递

android activity中的变量怎么传值给fragment

Activity通过构造方法和普通方法向Fragment传递参数

fragment和activity之间进行数据交互

fragment和activity之间进行数据交互