gpt4 book ai didi

android - 如何将参数传递给android中的对话框?

转载 作者:行者123 更新时间:2023-12-02 12:29:55 28 4
gpt4 key购买 nike

我正在调用一个带有参数的对话框,如下所示:

MyDialog("title", "message").show(this@MyActivity.supportFragmentManager, null)

这是我的对话类:
class MyDialog(private val theTitle: String, private val theMessage: String) : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return activity.let {
val myBuilder = AlertDialog.Builder(it)
myBuilder
.setTitle(theTitle)
.setMessage(theMessage)
.setPositiveButton("OK") { _, _ -> }
myBuilder.create()
}
}
}

但是当设备的旋转方向发生变化时,应用程序将停止工作。
如果没有传递任何参数,则不会发生这种情况。
那么,如何传递参数以及最好的方法是什么?

最佳答案

如果它是一个 fragment ,那么应该总是有一个可用的默认构造函数。
单独传递参数将确保在 fragment 的状态更改期间保留参数
所以有一个方法 setArgument(Bundle) 可以在其中传递参数。
所以在这里你的电话应该被重写为

class MyDialog: DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return activity.let {
val arg = arguments
// Use the parameters by accessing the key from variable "arg"
val myBuilder = AlertDialog.Builder(it)
myBuilder
.setTitle(theTitle)
.setMessage(theMessage)
.setPositiveButton("OK") { _, _ -> }
myBuilder.create()
}
}
}

你这样称呼你 Dialog :
val d = MyDialog()
val b = Bundle()
b.putInt("KEY1",1)
d.arguments = b
d.show(FragmentManager,Tag)

对于任何 fragment ,请始终记住使用参数来传递数据

关于android - 如何将参数传递给android中的对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56543161/

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