kotlin 我尝试在我的HomeFragment上获取捆绑包,但当我第一次输入时,出现错误

edqdpe6u  于 2023-02-05  发布在  Kotlin
关注(0)|答案(1)|浏览(111)

我正在发送捆绑包到我的主片段在另一个片段。但当应用程序打开在第一,给我一个错误,因为应用程序没有采取任何捆绑包在第一。顺便说一句,我发送和获得这样的捆绑包;

//Sending
            val fragment = Notlar()
            val bundle = Bundle()
            bundle.putInt("categoryId", -99)
            fragment.arguments = bundle
            findNavController().navigate(R.id.action_kategoriler_to_notlar, bundle)

//Getting (On Home Fragment)
            categoryIdBundle = requireArguments().getInt("categoryId",-1)

我试过类似的方法;

try {
    categoryIdBundle = requireArguments().getInt("categoryId",-1)
} catch (e : Exception) {
    categoryIdBundle = -1
}

但是即使它一开始就打开了,我发送的捆绑包从来没有来过,所以catch块总是工作的,在这一点上我该怎么办呢?

afdcj2ne

afdcj2ne1#

您可以在Kotlin.?中尝试Safe Call Operator以确保数据不为空,并尝试使用bundle在片段之间发送数据

// in the first fragment

findNavController().navigate(
    R.id.action_kategoriler_to_notlar,
    Bundle().apply {
        putInt("categoryId", -99)
    }
)

// in destination fragment
arguments?.getInt("categoryId", -1)?.let {
    // handle the result here ...
}

你可以在这里阅读更多关于安全调用的信息,在这里阅读更多关于在导航中发送捆绑包的信息
希望能帮到你

相关问题