Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t通过navController的setGraph中的bundle将数据从一个片段传递到另一个片段_Java_Android_Android Fragments - Fatal编程技术网

Java Can';t通过navController的setGraph中的bundle将数据从一个片段传递到另一个片段

Java Can';t通过navController的setGraph中的bundle将数据从一个片段传递到另一个片段,java,android,android-fragments,Java,Android,Android Fragments,我将在片段之间传递数据;我使用bundle并把它放在一个setGraph参数中,但我不能在另一个片段中得到它,它总是返回null。有什么问题 片段导航 Bundle bundle = new Bundle(); bundle.putString("deviceSerialNo", "abc"); Log.d("TAGTAG", "onClick: " + bundle); navController.setGraph(R.navigation.nav_graph, bundle); navCon

我将在片段之间传递数据;我使用bundle并把它放在一个setGraph参数中,但我不能在另一个片段中得到它,它总是返回null。有什么问题

片段导航

Bundle bundle = new Bundle();
bundle.putString("deviceSerialNo", "abc");
Log.d("TAGTAG", "onClick: " + bundle);
navController.setGraph(R.navigation.nav_graph, bundle);
navController.navigate(R.id.action_FirstFragment_to_SecondFragment);
第二个片段

    @Override
    public View onCreateView(
            LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState
    ) {

        Log.d("TAGTAG", "onCreateView: " + getArguments());
        if (getArguments() != null) {
            String string = getArguments().getString("deviceSerialNo");
        }


        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_second, container, false);
    }
根据,传入的
包被称为
startDestinationArgs

startDestinationArgs
:要发送到图形开始目标的参数

因此,如果您的
FirstFragment
需要接收用于参数的
Bundle
,则使用接受
Bundle
setGraph
的唯一原因是。作为
navigate()
调用的一部分,您需要手动将这些参数传递给任何其他片段,例如
SecondFragment

// Pass the arguments to the SecondFragment
navController.navigate(R.id.action_FirstFragment_to_SecondFragment, bundle);

你好@利他主义,为什么你不能使用共享视图模型来传递数据?@ArunPM你好,我以前没有这样做过,应该在某处试试:)。但我愿意知道为什么这不能工作,虽然我认为所有的事情都是好的;如何在不提交片段的情况下,仅通过使用导航控制器将数据传递到最终目的地?这就是
navigate()
所做的。看起来你根本不应该使用
setGraph
来做你想做的事情。