将活动中的字符串发送到另一个活动的片段

时间:2013-04-25 10:34:18

标签: android android-intent android-fragments android-activity

我有两个活动(A和B)和一个片段F. 片段F包含在活动B中 我想将活动A中的字符串发送到Fragment F. 怎么办? 谢谢!

3 个答案:

答案 0 :(得分:9)

与在活动之间交换数据几乎相同。你应该在开头使用getActivity()来访问片段。

检查以下代码:

  

在活动A中:

Intent intent = new Intent(this,ActivityB.class);
intent.putExtra("data",data); //data is a string variable holding some value.
startActivity(intent); 
  

在活动B的片段F中

String data = getActivity().getIntent().getStringExtra("data");

答案 1 :(得分:6)

首先,您实际上会将该字符串发送到您的活动B.例如:

Intent intent = new Intent(this, YourActivityClass.class);
intent.putExtra("myString", "this is your string");
startActivity(intent);

然后从活动B中读取该字符串并在执行fragment-transaction之前注入到您的片段中。例如:

Bundle args = new Bundle();
args.putString("myString", getIntent().getExtras().getString("myString"))
yourFragment.setArguments(args);

稍后,在您的片段中使用getArguments()来检索该捆绑包。


或者,在片段中使用以下内容直接访问活动意图并获取所需的值:

String str = getActivity().getIntent().getStringExtra("myString");

有关详细信息,请阅读this

答案 2 :(得分:0)

在Fragment.java文件中添加以下代码,

public static String name= null;

public void setName(String string){
name = string;
}

在要从中发送String的MainActivity.java中添加以下代码

String stringYouWantToSend;

Fragment fragment =  new Fragment();
fragment.setName(stringYouWantToSend);