检查警报对话框android中的空编辑文本

时间:2013-05-14 20:25:02

标签: java android while-loop android-edittext

我有以下代码用于检查警告对话框中的空编辑文本,但它无法正常工作

    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循环,但它不能正常工作

2 个答案:

答案 0 :(得分:2)

看起来您正在尝试比较String值。你不能这样做

if (mPhoneNumber == "Error")

将其更改为

if("Error".equals(mPhoneNumber))

==会比较它们是Strings的同一对象,但如果它们具有相同的值则不会。这样做你不应该null检查,因为如果mPhoneNumbermPhoneNumber

,“错误”将不等于null

答案 1 :(得分:0)

为什么不让你的AlertDialog构建一个单独的方法并调用该方法,而不是使用while循环,然后在onClick按钮的AlertDialog中使用if否则检查该值是否为空以及是否对您的AlertDialog方法进行递归调用。