Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在警报输入对话框中要求非空白文本_Android - Fatal编程技术网

Android 如何在警报输入对话框中要求非空白文本

Android 如何在警报输入对话框中要求非空白文本,android,Android,我想通过警报对话框检索用户输入。。。有没有办法使编辑文本为空时用户不能按Ok?我的意思是要求他键入一些内容?您可以使用textchangeListener在PostTextChange方法中实现这一点,检查editText的文本,并根据长度设置启用或禁用Ok按钮,如下所示: editText.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editabl

我想通过警报对话框检索用户输入。。。有没有办法使编辑文本为空时用户不能按Ok?我的意思是要求他键入一些内容?

您可以使用textchangeListener在PostTextChange方法中实现这一点,检查editText的文本,并根据长度设置启用或禁用Ok按钮,如下所示:

editText.addTextChangedListener(new TextWatcher() {
                        public void afterTextChanged(Editable s) {
                                //XXX do something
                                if(editText.getText().length()>0)
                                     btnOk.setEnabled(true);
                                else
                                     btnOk.setEnabled(false);
                        }
                        public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
                                //XXX do something
                        }
                    public void onTextChanged(CharSequence s, int start, int before, int count) {
                            //XXX do something
                    }
    }); 

您可以使用textchangeListener在editText的PostTextChange方法检查文本中实现这一点,并根据长度设置启用或禁用Ok按钮,如下所示:

editText.addTextChangedListener(new TextWatcher() {
                        public void afterTextChanged(Editable s) {
                                //XXX do something
                                if(editText.getText().length()>0)
                                     btnOk.setEnabled(true);
                                else
                                     btnOk.setEnabled(false);
                        }
                        public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
                                //XXX do something
                        }
                    public void onTextChanged(CharSequence s, int start, int before, int count) {
                            //XXX do something
                    }
    }); 

使用警报对话框的自定义布局。例:

Dialog dialog = new Dialog(this);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

            dialog.setContentView(R.layout.your_layout_name);
            //sample for getting view id...

            //TextView dialogbody=(TextView) dialog.findViewById(R.id.dialogbody);

使用警报对话框的自定义布局。例:

Dialog dialog = new Dialog(this);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

            dialog.setContentView(R.layout.your_layout_name);
            //sample for getting view id...

            //TextView dialogbody=(TextView) dialog.findViewById(R.id.dialogbody);

这需要自定义布局吗?或者是否有方法访问AlertDialog的默认ok按钮?您也可以使用dialog的默认按钮:AlertDialog.getButtonwhichButton.setEnabledenabled;对于未来的读者:在调用show之前,API 7中的getButton返回null存在一个问题,该问题在2.2中已修复。解决方案呼叫先显示,这需要自定义布局吗?或者是否有方法访问AlertDialog的默认ok按钮?您也可以使用dialog的默认按钮:AlertDialog.getButtonwhichButton.setEnabledenabled;对于未来的读者:在调用show之前,API 7中的getButton返回null存在一个问题,该问题在2.2中已修复。解决方案呼叫先显示,