Android 片段包只得到一个参数
Android fragment bundle only get one arg
我想将多个值从我的片段传递到另一个片段。
这就是我在片段 A 中所做的:
mCallback.passData("title","test");
Activity:
片段 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";
你的字符串是一样的。
看看你的调试器,你会看到 Bundle[{data_received="test"}]
,这意味着 NAME_RECEIVE
与 TITEL_RECEIVE
的值完全相同,即 "data_received"
此外,永远不要同时 Toast 两件事。您只会看到一个 pop-up 框。
试试 Log
。
Bundle args = getArguments();
if(args != null){
Log.d(NAME_RECEIVE, args.getString(NAME_RECEIVE));
Log.d(TITEL_RECEIVE, args.getString(TITEL_RECEIVE));
}
"proper" 片段创建的附加参考:Best practice for instantiating a new Android Fragment
我想将多个值从我的片段传递到另一个片段。
这就是我在片段 A 中所做的:
mCallback.passData("title","test");
Activity:
片段 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";
你的字符串是一样的。
看看你的调试器,你会看到 Bundle[{data_received="test"}]
,这意味着 NAME_RECEIVE
与 TITEL_RECEIVE
的值完全相同,即 "data_received"
此外,永远不要同时 Toast 两件事。您只会看到一个 pop-up 框。
试试 Log
。
Bundle args = getArguments();
if(args != null){
Log.d(NAME_RECEIVE, args.getString(NAME_RECEIVE));
Log.d(TITEL_RECEIVE, args.getString(TITEL_RECEIVE));
}
"proper" 片段创建的附加参考:Best practice for instantiating a new Android Fragment