基本上我是科特林的新手,我得到了"推断类型不匹配错误";当我更新这一行的版本代码和版本名称时。
private lateinit var selectedPlan: SubscriptionItem
selectedPlan = params!!.getParcelable("selectedPlan")
selectedPlan = params!!.getParcelable("selectedPlan")!!
when (selectedPlan.getPlanType()) {
PlanType.STANDARD -> inflater.inflate(
R.layout.layout_package_standard,
container,
false
)
PlanType.PREMIUM -> inflater.inflate(
R.layout.layout_package_premium,
container,
false
)
PlanType.BASIC -> inflater.inflate(R.layout.layout_package_basic, container, false)
else -> {
Toast.makeText(context, "Unknown plan type", Toast.LENGTH_LONG).show()
inflater.inflate(R.layout.layout_package_basic, container, false)
}
}
} else {
inflater.inflate(R.layout.layout_package_basic, container, false)
}```
错误是您的变量不可为null,并且"getParcelable";返回一个可为null的对象
这应该有效:
selectedPlan = params!!.getParcelable("selectedPlan")!!
但如果添加默认值会更安全
selectedPlan = params?.getParcelable("selectedPlan") ?: PlanType.BASIC