【问题标题】:Prevent Alert Dialog to dismiss on Button Clicked防止警报对话框在单击按钮时关闭
【发布时间】:2014-05-30 18:09:25
【问题描述】:

我在我的应用程序中使用 Some EditText、Spinner 创建了一个自定义警报对话框。我使用了警报对话框的默认否定和肯定按钮。

我想首先验证单击“肯定”按钮上的数据,如果一切正常,则关闭警报对话框,否则保持警报并在 toast 中显示错误消息。

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(getString(R.string.dialog_title_add));
    builder.setView(dialoglayout);

builder.setPositiveButton(getString(android.R.string.ok),
            new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
} });

【问题讨论】:

    标签: android android-alertdialog


    【解决方案1】:

    我没有看到你设置了内置的肯定按钮,而且看起来你正在使用自定义视图。

    使用将在自定义视图中单击的按钮,就像任何其他按钮一样 - 设置单击侦听器,并在 onClick() 方法中检查 EditText 输入是否正确。然后,使用 your_alert.cancel() 关闭 AlertDialog。

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    AlertDialog alert;
    builder.setTitle(getString(R.string.dialog_title_add));
    builder.setView(dialoglayout);
    Button your_button = (Button) dialoglayout.findViewById(R.id.your_button);
                button.setOnClickListener(new OnClickListener() {
                @Override
                    public void onClick(View v) {
                        if(edittext_false){ 
                          Toast.makeText(context, "Something wrong", Toast.LENGTH_LONG).show();
                        }else{
                          alert.dismiss();
                        }
                    }
                }); 
    alert = builder.create();
    alert.show();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2011-08-08
      • 2011-10-30
      • 1970-01-01
      相关资源
      最近更新 更多