相关疑难解决方法(0)

单击按钮时如何防止对话框关闭

我有一个EditText输入对话框.当我单击对话框上的"是"按钮时,它将验证输入,然后关闭对话框.但是,如果输入错误,我想保持在同一个对话框中.每次无论输入是什么,当我点击"否"按钮时,对话框应自动关闭.我怎么能禁用它?顺便说一句,我已经使用PositiveButton和NegativeButton作为对话框上的按钮.

android dialog android-alertdialog android-dialog android-dialogfragment

704
推荐指数
9
解决办法
25万
查看次数

有没有办法阻止AlertDialog关闭无效输入?

我正在使用带有正面和取消按钮的简单文本字段警告对话框.我想验证我的警报对话框,如果输入无效,则阻止完成按钮关闭AlertDialog.

有没有办法创建一个自定义对话框,以防止PositiveButton onClick()处理程序在验证失败时关闭对话框?

class CreateNewCategoryAlertDialog {
    final EditText editText;
    final AlertDialog alertDialog;

    class PositiveButtonClickListener implements OnClickListener {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            String name = editText.getText().toString();
            if(name.equals("")) {
                editText.requestFocus();
                editText.setError("Please enter a name");
                // Some code to stop AlertDialog from closing goes here...
            } else {
                doSomethingUsefulWithName();
            }
        }
    }

    AlertDialog buildAlertDialog(Context context) {
        return new AlertDialog.Builder(context)
        .setTitle(context.getString(R.string.enter_name))
        .setMessage(context.getString(R.string.enter_name_msg))
        .setView(editText)
        .setPositiveButton(context.getString(R.string.done), new PositiveButtonClickListener())
        .setNegativeButton(context.getString(R.string.cancel), null).create();
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog

16
推荐指数
1
解决办法
7674
查看次数

如何从AlertDialog显示Toast?

当用户单击"保存"按钮时,会AlertDialog出现一个并要求用户输入文件名的文本.

如果用户在没有指定名称的情况下单击肯定按钮("确定"),我想显示要求他们这样做的祝酒词,并保持AlertDialog打开状态.但是吐司从不显示,对话框关闭.

这里的代码AlertDialog是:

    AlertDialog.Builder alert = new AlertDialog.Builder(this);

    alert.setTitle(R.string.save_game);
    alert.setMessage(R.string.request_name);

    // Set an EditText view to get user input 
    final EditText input = new EditText(this);
    input.setHint(R.string.untitled);
    alert.setView(input);

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
      String value = input.getText().toString();
      if(value != null){
          // Do something with value      
      }
      else{
          Toast.makeText(context, R.string.no_name_given, Toast.LENGTH_SHORT).show();
      }
    }
    });

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        // Canceled.
    }
    });

    alert.show(); …
Run Code Online (Sandbox Code Playgroud)

android toast android-alertdialog

4
推荐指数
1
解决办法
2万
查看次数