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_RECEIVETITEL_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