Android片段包只获得一个arg

时间:2017-02-14 22:12:57

标签: android android-fragments android-intent bundle

我想将片段中的多个值传递给另一个片段。

这就是我在片段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";

1 个答案:

答案 0 :(得分:6)

你的字符串是一样的。

查看您的调试器,您会看到Bundle[{data_received="test"}],这意味着NAME_RECEIVETITEL_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