gpt4 book ai didi

android - Kotlin 扩展功能使用 Intent 附加功能启动 Activity

转载 作者:行者123 更新时间:2023-12-04 17:14:44 24 4
gpt4 key购买 nike

我正在尝试为 Context 编写一个 kotlin 扩展函数,它将在具有给定类名和 Intent 附加列表的 android 中启动一个新 Activity 。我能够在没有任何额外内容的情况下成功开始 Activity ,但我遇到了问题。

fun <T> Context.openActivity(it: Class<T>, pairs: List<Pair<String, Any>>) {
var intent = Intent()
pairs.forEach {
intent.putExtra(it.first, it.second)
}
startActivity(intent)
}

Main issue here is -> intent.putExtra() doesn't except second param as Any

最佳答案

考虑使用 Bundle,而不是使用对列表.然后你可以用 putExtras(Bundle) 添加它.

如果您想提前一步,您可以添加一个 lambda 扩展来配置附加功能:

fun <T> Context.openActivity(it: Class<T>, extras: Bundle.() -> Unit = {}) {
val intent = Intent(this, it)
intent.putExtras(Bundle().apply(extras))
startActivity(intent)
}

然后您可以将其称为:
openActivity(MyActivity::class.java) {
putString("string.key", "string.value")
putInt("string.key", 43)
...
}

关于android - Kotlin 扩展功能使用 Intent 附加功能启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53803667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com