gpt4 book ai didi

android - Kotlin中使用AlertDialog输入错误密码时如何返回输入界面?

转载 作者:行者123 更新时间:2023-11-29 18:52:20 25 4
gpt4 key购买 nike

我希望在启动APP时能打开一个密码输入对话框。

如果我输入正确的密码,对话框将关闭并显示主 UI。

如果我输入错误密码,对话框将保持打开状态并要求用户再次输入。

我该怎么做?谢谢!

目前无论密码输入正确还是错误,对话框都是关闭的。

  override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.layout_main)
showInputPasswordDialog()
}


private fun showInputPasswordDialog {
val editText = EditText(this)
val inputDialog = AlertDialog.Builder(this)
inputDialog.setTitle("Input")
.setView(editText)
.setCancelable(false)
.setNegativeButton("Cancel", DialogInterface.OnClickListener { dialog, which ->
finish();
})

inputDialog.setPositiveButton("OK",
DialogInterface.OnClickListener { dialog, which ->
val password= editText.text.toString()
if (password=="aa"){
//close the dialog
}else{
toast("Password error")
//Return for input again
}
}).show()
}

最佳答案

如果您在 alertDialog.onShowlistener 中处理正按钮的 onclick 监听器,那么您可以避免对话框关闭流程。请在下面找到修改后的代码。

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.layout_main)
showInputPasswordDialog()
}


private fun showInputPasswordDialog {
val editText = EditText(this)
val inputDialog = AlertDialog.Builder(this)
inputDialog.setTitle("Input")
.setView(editText)
.setCancelable(false)
.setNegativeButton("Cancel", DialogInterface.OnClickListener { dialog, which ->
finish();
})

inputDialog.setPositiveButton("OK",null)

// modified code starts here
val mAlertDialog = inputDialog.create()

mAlertDialog.setOnShowListener(DialogInterface.OnShowListener {
val b = mAlertDialog.getButton(AlertDialog.BUTTON_POSITIVE)
b.setOnClickListener(View.OnClickListener {

val password= editText.text.toString()
if (password=="aa"){
mAlertDialog.dismiss();
//close the dialog
}else{
toast("Password error")
//Return for input again
}

})
})

mAlertDialog.show()

}

引用:How to prevent a dialog from closing when a button is clicked

关于android - Kotlin中使用AlertDialog输入错误密码时如何返回输入界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50691137/

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