android Activity和fragment通信之activity向Fragment发送数据

在activity中部分代码如下:

public void onClick(View view) {
    String text = editText.getText().toString();
    MyFragment5 fragment5 = new MyFragment5();
    Bundle bundle = new Bundle();
    bundle.putString("name",text);
    fragment5.setArguments(bundle);
    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
    beginTransaction.add(R.id.layout,fragment5,"fragment5");
    beginTransaction.commit();
    Toast.makeText(MainActivity4.this,"箱Fragment发送数据"+text,Toast.LENGTH_LONG).show();

}
activity向fragment发送的数据必须把数据先存储在一个Bundle的对象里,然后在利用fragment对象的setArguments向Fragment发送数据,

通过FragmentManager添加Fragment。

在Fragment中接收activity发送的数据方式:

package com.example.fragment;

import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

/**
 * Created by 联想 on 2016/7/4.
 */
public class MyFragment5 extends Fragment{
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment2,container,false);

        String text = getArguments().get("name").toString();
        TextView tv = (TextView) view.findViewById(R.id.text);
        tv.setText(text);
        Toast.makeText(getActivity(),"已经成功接收到拘束"+text,Toast.LENGTH_LONG).show();
        return view;

    }
}
并把fragment中包含的TextView值修改成接收到的数据,

并弹出吐司。。

你可能感兴趣的:(Android学习笔记)