【发布时间】:2016-07-05 06:20:33
【问题描述】:
有一个警告对话框,其中包含密码EditText,我正在尝试执行与按下键盘 RETURN 按钮后按下肯定按钮相同的操作。
在我的 MainActivity 中:
fun enterPwd() {
val builder = android.app.AlertDialog.Builder(this)
val password = EditText(this)
// some layout attributes about password are omitted
password.imeOptions = EditorInfo.IME_ACTION_GO
password.setOnEditorActionListener({
if(id == EditorInfo.IME_ACTION_GO) { v, id, event ->
doSomthingFunction()
}
false
})
builder.setView(password).setMessage("message")
.setPositiveButton("confirm", { doSomethingFunction() })
.setNegativeButton("cancel", { dialog, i -> }).show()
}
在setPositiveButton 中的后者 doSomethingFunction() 中,构建器将在按下按钮后自动关闭。但是在上一个中,对话框仍然存在。我曾尝试通过dialog = builder.show(),然后在doSomethingFunction() 之后通过dialog.dismiss() 关闭setOnEditorActionListener(如下所示),但没有效果。按下回车键后如何关闭此对话框?
val dialog = builder.show()
password.setOnEditorActionListener({
if(id == EditorInfo.IME_ACTION_GO) { v, id, event ->
doSomthingFunction()
dialog.dismiss()
}
false
})
【问题讨论】:
-
我们的警报对话框中有多少编辑文本?
-
只有一个,
password。这也是我添加到构建器中的唯一视图 -
尝试用 setPositiveButton() 代替 doSomethingFunction()。
-
试试
Dialog.this.dismiss() -
惠特尼有用吗?
标签: android android-alertdialog kotlin