我正在使用最新的材料设计库。 现在要创建一个自定义对话框,我要做以下工作
holder.id_edit_srt_bit.setOnClickListener {
println(my_data[position])
var data = my_data[position]
MaterialAlertDialogBuilder(context)
.setView(R.layout.dialog_edit_form)
.setPositiveButton("OK") { dialog, which ->
println("---------> $dialog -> $which")
}
.setNegativeButton("NO") { dialog, which ->
println("---------> $dialog -> $which")
}
.show()
}
单击时,它将使用我的自定义布局dialog_edit_form
打开对话框。 它有两个文本字段,分别为ID1
和ID2
。
现在,当打开该对话框时,我需要在data
变量中设置一个值
怎么做?
我试过了,但不起作用
var dialog = Dialog(context)
dialog.findViewById<EditText>(R.id.id1)?.text = data?.val1 as Editable
dialog.findViewById<EditText>(R.id.id2)?.text = data?.val2 as Editable
请仅以材料设计方式回答。 我不希望使用旧的方法,这就是我使用MaterialAlertDialogBuilder
的原因
还可以在MaterialAlertDialogBuilder.SetView
方法中传递视图
。
首先膨胀视图,设置数据,然后将膨胀后的视图
传递给MaterialAlertDialogBuilder.setView
方法。
示例:
val dialogView = layoutInflater.inflate(R.layout.dialog_edit_form, null)
dialogView.findViewById<EditText>(R.id.id1)?.text = data?.val1
dialogView.findViewById<EditText>(R.id.id2)?.text = data?.val2
MaterialAlertDialogBuilder(context)
.setView(dialogView)
...
.show()