2013-05-14 76 views
0

我有一個警報對話框檢查空編輯文本下面的代碼,但它不工作檢查空編輯文本

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循環,但它不工作

+0

定義「它不工作」。怎麼了?你期望會發生什麼? – Keppil

+2

'if(mPhoneNumber ==「Error」)''。在谷歌寫的「比較Java中的字符串」。 – Maroun

+0

相同的原因,而不是下一個的StackOverflow問題[鏈接] [1] [1]:http://stackoverflow.com/questions/27952446/checking-if-edittext-isempty-not-working/27952746 #27952746 –

回答

2

它看起來像你試圖比較String值。你不能像這樣做

if (mPhoneNumber == "Error") 

變化,要

if("Error".equals(mPhoneNumber)) 

==,如果他們是Strings相同的對象但如果它們具有相同的值進行比較。這樣做,這樣,你不應該需要null檢查,因爲「錯誤」將不等於​​如果​​是null

+0

除了while循環部分外,所有的代碼都可以正常工作,看起來程序進入了一個無限循環......只要用戶按下「ok」而不輸入數值,我就希望顯示警告對話框 – user2379095

+0

那麼爲什麼需要一個循環?每次用戶按下「Button」並且「EditText」爲空時,只需顯示「Dialog」。他們將如何在那裏進行對話。關閉它,並讓它們進入任何它。另外,您仍然需要更改比較,如我的回答 – codeMagic

+0

如果他們將它輸入到對話框中,那麼只需讓按鈕運行代碼「if」它不是空的「else」什麼也不做 – codeMagic

0

而不是使用while循環,你爲什麼不使你的AlertDialog建立一個單獨的方法和呼叫該方法,然後在AlertDialog按鈕的onClick中使用if else來檢查該值是否爲空,並且如果它是在您的AlertDialog方法上進行遞歸調用。