对于 Android Bundle,Float 0.0 是否为 Null?

问题描述 投票:0回答:1

我尝试在 Bundle 中传递值为 0.0 的 mPriceModifier。但得到这个例外

java.lang.NullPointerException: null cannot be cast to non-null type kotlin.Float

mPriceModifier初始化

private var mPriceModifier: Double = 0.0

在进入 Bundle 之前,mPriceModifier 只能使用 1 次。无论如何,在调试模式下,在放入之前它会显示 0.0。

有捆绑代码

mBundle.apply {
    putFloat("priceModifier", mPriceModifier.toFloat())
}
mNavController.navigate(R.id.action_global_processState, mBundle)

mPriceModifier 是 NonNullableType。 nav_graph 也没有该参数的“可为空”属性。

如果我添加“if”这样的表达式

if(mPriceModifier != 0.0){
    mBundle.apply{
       putFloat("priceModifier", mPriceModifier.toFloat())
    }
}

然后它会跳过这个表达式,但无论如何给我这个例外

android kotlin navigation
1个回答
0
投票

不确定这是否是问题所在,但我可能会将变量声明为浮点数,因此在将值放入包中时不需要从双精度转换为浮点数。尝试以下操作并删除它 (mPriceModifier.toFloat())

private var mPriceModifier: Float = 0.0f

此外,请检查/分享您如何读取该值。问题也可能存在。

© www.soinside.com 2019 - 2024. All rights reserved.