Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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
Java 选中警报对话框中的空编辑文本_Java_Android_While Loop_Android Edittext - Fatal编程技术网

Java 选中警报对话框中的空编辑文本

Java 选中警报对话框中的空编辑文本,java,android,while-loop,android-edittext,Java,Android,While Loop,Android Edittext,我有以下代码用于检查警报对话框中的空编辑文本,但它不起作用 if (mPhoneNumber == null) { mPhoneNumber = GetNumber(); if (mPhoneNumber == "Error") { final AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle("Warrnin

我有以下代码用于检查警报对话框中的空编辑文本,但它不起作用

    if (mPhoneNumber == null) {
        mPhoneNumber = GetNumber();
        if (mPhoneNumber == "Error") {

            final AlertDialog.Builder alert = new AlertDialog.Builder(this);
            alert.setTitle("Warrning");
            alert.setMessage("Please Set Your Phone number");
            final EditText input = new EditText(this);
            input.setInputType(InputType.TYPE_CLASS_PHONE);
            alert.setView(input);
            alert.setPositiveButton("Ok",new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,int whichButton) {
                            String value = input.getText().toString();
                            while (value.isEmpty())
                            {
                                alert.setTitle("Warrning");
                                alert.setMessage("Please Set Your Phone number");
                                alert.setView(input);
                                alert.setPositiveButton("Ok",new DialogInterface.OnClickListener() {
                                            public void onClick(DialogInterface dialog,int whichButton) {
                                                String value = input.getText().toString();}});
                            }
                            String Result = SetNumber(value);
                            mPhoneNumber = value;
                            int UserServiceId = CallLogin(mPhoneNumber);
                            if (UserServiceId > 0) {
                                Intent Service = new Intent(MainScreeen.this,
                                        RecipeService.class);
                                Service.putExtra("UserId", UserServiceId);
                                startService(Service);
                            } else {
                                Intent Reg = new Intent(MainScreeen.this,Regsteration.class);
                                Reg.putExtra("PhoneNumber", mPhoneNumber);
                                startActivity(Reg);
                            }
                        }
                    });
            alert.show();

我需要强制用户输入他/她的电话号码,并且不要将编辑文本保留为空,我使用了while循环,但它不起作用。看起来您正在尝试比较
字符串
值。你不能这样做

    if (mPhoneNumber == null) {
        mPhoneNumber = GetNumber();
        if (mPhoneNumber == "Error") {

            final AlertDialog.Builder alert = new AlertDialog.Builder(this);
            alert.setTitle("Warrning");
            alert.setMessage("Please Set Your Phone number");
            final EditText input = new EditText(this);
            input.setInputType(InputType.TYPE_CLASS_PHONE);
            alert.setView(input);
            alert.setPositiveButton("Ok",new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,int whichButton) {
                            String value = input.getText().toString();
                            while (value.isEmpty())
                            {
                                alert.setTitle("Warrning");
                                alert.setMessage("Please Set Your Phone number");
                                alert.setView(input);
                                alert.setPositiveButton("Ok",new DialogInterface.OnClickListener() {
                                            public void onClick(DialogInterface dialog,int whichButton) {
                                                String value = input.getText().toString();}});
                            }
                            String Result = SetNumber(value);
                            mPhoneNumber = value;
                            int UserServiceId = CallLogin(mPhoneNumber);
                            if (UserServiceId > 0) {
                                Intent Service = new Intent(MainScreeen.this,
                                        RecipeService.class);
                                Service.putExtra("UserId", UserServiceId);
                                startService(Service);
                            } else {
                                Intent Reg = new Intent(MainScreeen.this,Regsteration.class);
                                Reg.putExtra("PhoneNumber", mPhoneNumber);
                                startActivity(Reg);
                            }
                        }
                    });
            alert.show();
if (mPhoneNumber == "Error")
换成

if("Error".equals(mPhoneNumber))

=
比较它们是否是
字符串的相同对象,但不比较它们是否具有相同的值。这样做你不需要检查
null
,因为“Error”不等于
mPhoneNumber
如果
mPhoneNumber
null
而不是使用while循环,为什么不让你的
AlertDialog
构建一个单独的方法并调用该方法,然后在
AlertDialog
按钮的
onClick
中,使用if-else检查该值是否为空,以及该值是否为空,并对
AlertDialog
方法进行递归调用。

定义“它不工作”。会发生什么?您希望发生什么?
如果(mPhoneNumber==“Error”)
。在google中编写“比较Java中的字符串”。与下一个StackOverflow问题的原因相同[link][1][1]:除了while循环部分外,所有代码都工作正常,看起来程序进入了无限循环。。。我希望只要用户按“ok”而不输入值,警报对话框就会显示,那么为什么需要循环呢?只要在用户每次按下
按钮时显示
对话框
,并且
编辑文本
为空即可。他们将如何在对话框中输入内容。关闭它,让他们进入任何东西。此外,您仍然需要像我的回答中那样更改比较如果他们将其输入对话框,则只需让按钮运行代码
如果它不是空的
否则
什么也不做