您的位置:首页 > 移动开发 > Android开发

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

2016-07-04 15:52 483 查看
在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值修改成接收到的数据,

并弹出吐司。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息