有一个警告对话框,其中包含密码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()
,然后在dialog.dismiss()
doSomethingFunction()
之后setOnEditorActionListener
稍后解散(附后如下),但它没有效果。按下返回键后如何关闭此对话框?
val dialog = builder.show()
password.setOnEditorActionListener({
if(id == EditorInfo.IME_ACTION_GO) { v, id, event ->
doSomthingFunction()
dialog.dismiss()
}
false
})
答案 0 :(得分:2)
尝试将setPositiveButton()放在doSomethingFunction()的位置
答案 1 :(得分:1)
performClick()
,一切正常。
那是:
val dialog = builder.setView(password).setMessage("message")
.setPositiveButton("confirm", { doSomethingFunction() })
.setNegativeButton("cancel", { dialog, i -> }).show()
password.setOnEditorActionListener({
if(id == EditorInfo.IME_ACTION_GO) { v, id, event ->
dialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick()
}
false
})
答案 2 :(得分:0)
嗨,请在调用doSomthingFunction()后解除对话。