gpt4 book ai didi

android - 动态使用 AnkoComponent<*>.startActivity()

转载 作者:行者123 更新时间:2023-11-30 01:09:33 25 4
gpt4 key购买 nike

有没有办法动态调用startActivity()?

目的是要有如下内容:

fun <T: Activity> buttonGoTo(): android.widget.Button {

return button() {
// do stuff
onClick {startActivity<T>()}
}
}

提前致谢。

最佳答案

startActivity 您尝试使用的方法具有如下签名:

inline fun <reified T: Activity> Fragment.startActivity(vararg params: Pair<String, Any>)

如您所见,它使用 reified types parameters .结果是,如果您想将函数包装在另一个辅助函数中,它必须过于内联并使用具体化的类型参数。更重要的是,它也需要嵌套函数/lambda 来使用内联——在 onClick 的情况下不是真的。

但是我认为您仍然可以通过 intentFor<T> 实现您的目标像这样:

inline fun <reified T : Activity> Context.buttonGoTo() = UI {
val target = intentFor<T>()
button() {
onClick {
startActivity(target)
}
}
}.view

关于android - 动态使用 AnkoComponent<*>.startActivity(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38556132/

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