Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.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
Android的Kotlin扩展:如何使用bundleOf_Android_Kotlin_Android Bundle_Android Ktx - Fatal编程技术网

Android的Kotlin扩展:如何使用bundleOf

Android的Kotlin扩展:如何使用bundleOf,android,kotlin,android-bundle,android-ktx,Android,Kotlin,Android Bundle,Android Ktx,文件说: fun bundleOf(vararg pairs: Pair<String, Any?>): Bundle 但是它显示了错误。如果它接受一个vararg,则必须提供参数,而不是lambda。试试这个: val bundle = bundleOf( Pair("KEY_PRICE", 50.0), Pair("KEY_IS_FROZEN", false) ) 基本上,将{和}括号更改为

文件说:

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

但是它显示了错误。

如果它接受一个
vararg
,则必须提供参数,而不是lambda。试试这个:

val bundle = bundleOf(
               Pair("KEY_PRICE", 50.0),
               Pair("KEY_IS_FROZEN", false)
             )
基本上,将
{
}
括号更改为
,并在它们之间添加逗号

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

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
,需要将
实现'androidx.core:core ktx:1.0.0'
添加到
build.gradle
中,然后:

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

我添加了插件
apply plugin:'kotlin android extensions'
,但是
bundleOf()
无法自行解析。还有其他设置吗?bundleOf与android kotlin扩展无关。它是核心库的一部分。理想情况下,它应该是可用的。@toobsco42 bundleOf是Android KTX扩展功能的一部分。查看这里的文档:(它在androidx.core.os包中)@toobsco42将bndleOf导入更改为“androidx.core.os.bundleOf”
var bundle = bundleOf("KEY_PRICE" to 50.0, "KEY_IS_FROZEN" to false)