我正在制作一个应用程序,它中有一个警告对话框。
现在我正在检查我从AlertDialog editTexts中获得的一些数据在对话框中的正按钮OnClick方法,但是如果从edittext字段获得的数据是否正确,则对话框始终关闭。
我们如何禁用此功能。
更新:
我从对话框获取PIN码和确认PIN码,在onPositive点击我已经检查以验证PIN码。
现在如果pin代码匹配则调用dialog.dismiss(),如果不匹配则显示Toast。
但是如果pin代码不匹配,它会显示消息并关闭对话框。
我不希望这种情况发生。
更新更新:
有什么方法可以禁用OK按钮,当数据被验证时,它会启用正按钮?
请帮忙
答案 0 :(得分:27)
这是技巧(覆盖onShowListener中的onClickListener):
final AlertDialog d = new AlertDialog.Builder(context)
.setView(v)
.setTitle(R.string.my_title)
.setPositiveButton(android.R.string.ok,
new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface d, int which) {
//Do nothing here. We override the onclick
}
})
.setNegativeButton(android.R.string.cancel, null)
.create();
d.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
Button b = d.getButton(AlertDialog.BUTTON_POSITIVE);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Do something
//Dismiss once everything is OK.
d.dismiss();
}
});
}
});
答案 1 :(得分:3)
第谢谢你的帮助。通过你的指南,我必须知道我可以禁用警报对话框按钮。是!可以禁用按钮。
答案是:
我们可以使用以下方式禁用该按钮:
Button pos = Dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
pos.setEnabled(true);
答案 2 :(得分:1)
如果您想要随时关闭对话框,则必须使用自定义对话框而不是警报对话框。
当您按下AlertDialog的“否定”或“正”按钮时,AlertDialog始终会被忽略。
有关自定义对话框的详细信息,请Click here Custom Dialog