我想将片段中的多个值传递给另一个片段。
这就是我在片段A中所做的:
mCallback.passData("title","test");
的活动:
片段B:
Bundle args = getArguments();
if(args != null){
Toast.makeText(getActivity(), args.getString(NAME_RECEIVE), Toast.LENGTH_LONG).show();
Toast.makeText(getActivity(), args.getString(TITLE_RECEIVE), Toast.LENGTH_LONG).show();
}
但我只从我的包中得到一个参数
谢谢@ cricket_007
我为NAME_RECEIVE和TITLE_RECEIVE传递了2次相同的字符串:
final static String TITLE_RECEIVE = "data_receive";
final static String NAME_RECEIVE = "data_receive";
答案 0 :(得分:6)
你的字符串是一样的。
查看您的调试器,您会看到Bundle[{data_received="test"}]
,这意味着NAME_RECEIVE
与TITEL_RECEIVE
的值完全相同,即"data_received"
此外,永远不要一次敬酒两件事。你只会看到一个弹出框。
请尝试使用Log
。
Bundle args = getArguments();
if(args != null){
Log.d(NAME_RECEIVE, args.getString(NAME_RECEIVE));
Log.d(TITEL_RECEIVE, args.getString(TITEL_RECEIVE));
}
“正确”片段创建的其他参考:Best practice for instantiating a new Android Fragment