我有一个蓝牙阅读程序,它给了我一个我想要的字符串" print"进入片段的文本视图。字符串实时更新,因此不应该是一次性事件。
有趣的是,我可以将Text中的TextView文本传递给片段的TextView。然后我将String放入Activity TextView,然后从Activity TextView到Fragment Textview。
活动Textview是0dpx0dp所以没有人会看到它。
如何将String直接从MainActivity传递给Fragment的TextView?
这是活动:
textAmanheceMenos.setText(dadosTratadosB);
这是片段:
TextAmanheceMenos = (TextView) getActivity().findViewById(R.id.textAmanheceMenos);
String MSG = TextAmanheceMenos.getText().toString();
TextAmanheceEm.setText(MSG);
编辑:这是有效的。但我必须在活动中创建鬼文本视图。 " textAmanheceMenos"必须消除活动中的textview。 String" dadosTratadosB"必须直接进入" TextAmanheceEm.setText(dadosTratadosB)"。但这并不奏效。它说"无法解析符号"
即使我创建:
DadosTratadosB = getActivity().findViewById(dadosTratadosB);
我怎么能让它成功呢?
谢谢!
答案 0 :(得分:0)
要将活动中的数据发送到片段,请使用以下命令:
Bundle bundle = new Bundle();
bundle.putString("KEY", "STRING to send");
// set Fragmentclass Arguments
Fragmentclass fragobj = new Fragmentclass();
fragobj.setArguments(bundle);
然后在你的片段中
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String recivedString = getArguments().getString("KEY");
//Do whatever you want with this string
return inflater.inflate(R.layout.fragment, container, false);
}
答案 1 :(得分:0)
我假设您的片段已附加到您的活动中,您需要多次向您的片段发送文本,而无需重新创建/重新附加片段。您可以使用本地广播接收片段中的短信:https://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html
或者,查看EventBus库:https://github.com/greenrobot/EventBus它更易于使用且更灵活。您可以从应用的任何部分发送消息,并添加子文件以在其他地方接收它们。
[edit]如果你只想在片段中设置一次文本,你可以将你的文本作为参数传递,如上面的答案所述,然后你的片段将包含你传递的文本
答案 2 :(得分:0)
创建DataTable
以传递数据。见here
尝试使用以下代码从Intent
传递真实数据的值
Activity
在private void forwardActivityResult(Fragment f, int requestCode, int resultCode, Intent data) {
if (f != null) {
f.onActivityResult(requestCode, resultCode, data);
}
}
}
内,您可以从fragment
获取价值,并使用Intent data
TextView
上设置
data.getStringExtra