作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在调用一个带有参数的对话框,如下所示:
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()
}
}
}
val d = MyDialog()
val b = Bundle()
b.putInt("KEY1",1)
d.arguments = b
d.show(FragmentManager,Tag)
关于android - 如何将参数传递给android中的对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56543161/
我是一名优秀的程序员,十分优秀!