Android 的 Kotlin 扩展:如何使用 bundleOf

Kotlin extensions for Android: How to use bundleOf

文档说:

fun bundleOf(vararg pairs: Pair<String, Any?>): Bundle

Returns a new Bundle with the given key/value pairs as elements.

我试过了:

   val bundle = bundleOf {
       Pair("KEY_PRICE", 50.0)
       Pair("KEY_IS_FROZEN", false)
   }

但是显示错误。

如果需要 vararg,您必须提供参数作为参数,而不是 lambda。试试这个:

val bundle = bundleOf(
               Pair("KEY_PRICE", 50.0),
               Pair("KEY_IS_FROZEN", false)
             )

基本上,将必须的 {} 括号更改为 () 并在它们之间添加一个逗号。

另一种方法是使用 Kotlin 的 to 函数,它将其左侧和右侧组合成 Pair。这使代码更加简洁:

val bundle = bundleOf(
    "KEY_PRICE" to 50.0,
    "KEY_IS_FROZEN" to false
)

这个怎么样?

val bundle = bundleOf (
   "KEY_PRICE" to 50.0,
   "KEY_IS_FROZEN" to false
)

to 是创建 Pair 对象的好方法。中缀函数之美,可读性极佳。

只是为了完成其他答案:

首先,要使用bundleOf,需要将implementation 'androidx.core:core-ktx:1.0.0'添加到build.gradle,然后:

var bundle = bundleOf("KEY_PRICE" to 50.0, "KEY_IS_FROZEN" to false)