android中的警告对话框不应该解雇

时间:2011-06-08 07:45:08

标签: android dialog

我正在制作一个应用程序,它中有一个警告对话框。

现在我正在检查我从AlertDialog editTexts中获得的一些数据在对话框中的正按钮OnClick方法,但是如果从edittext字段获得的数据是否正确,则对话框始终关闭。

我们如何禁用此功能。

更新:

我从对话框获取PIN码和确认PIN码,在onPositive点击我已经检查以验证PIN码。

现在如果pin代码匹配则调用dialog.dismiss(),如果不匹配则显示Toast。

但是如果pin代码不匹配,它会显示消息并关闭对话框。

我不希望这种情况发生。

更新更新:

有什么方法可以禁用OK按钮,当数据被验证时,它会启用正按钮?

请帮忙

3 个答案:

答案 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