2013-06-25 51 views
1

我想告訴,如果一個機器人int是空使用的if/else安卓:if/else語句,使應用程序崩潰

public void onClick(View v) { 



      EditText min = (EditText) findViewById(R.id.EditText01); 
      EditText max = (EditText) findViewById(R.id.maxnum); 
      EditText res = (EditText) findViewById(R.id.res); 



      int myMin = Integer.parseInt(min.getText().toString()); 
      int myMax = Integer.parseInt(max.getText().toString()); 

      String minString = String.valueOf(myMin); 
      String maxString = String.valueOf(myMax); 

      int f = (int) ((Math.random()*(myMax-myMin+1))+myMin); 

      if (minString.equals("")) 
      { 
       // Do Nothing 
      } 

      if (maxString.equals("")) 
      { 
       // Do Nothing 
      } 



       res.setText(String.valueOf(f)); 

沒有任何錯誤,但是當我運行的應用程序即時按下按鈕時它會崩潰。

我也想用空的,而不是「」:

if (minString.equals(null)) 
{ 
    // Do Nothing 
} 

if (maxString.equals(null)) 
{ 
    // Do Nothing 
} 

,我有一個崩潰。

請幫幫我!!!

+0

什麼是logcat的說? –

+0

請發佈您的LogCat輸出。 – sebastian

+0

可能是Integer.parseInt(),如果你試圖解析一個非數字,它會崩潰。 – Carnal

回答

1
 do if (maxString == null) 
    { 
     // do something 
     } 
+0

它不工作:( –

+0

然後檢查你的整數值和/或EDITTEXT觀點您是否使用了正確的editTexts ?? – Prachi

+0

此外,你正在寫在的onClick()方法的代碼所以平時我們比較:如果(V == BTN1){//我的代碼在這裏}給我的錯誤日誌,我採用了android – Prachi

0

INT變量不能爲空

如果空要被轉換爲int,那麼它是決定是否設置爲0,拋出異常,或設置另外的值(如整數的轉換器.MIN_VALUE)

所以,如果你將int轉換成字符串再不能得到空值。

+0

它不工作:( –

1
public boolean equals (Object object) 

將指定的對象與此字符串進行比較,如果它們相等則返回true。該對象必須是具有相同順序的相同字符的字符串實例。

因此,它返回錯誤,所以如果你想要檢查其null,則使用==操作的對象。

if (maxString == null) 

使用

 int myMin = 0; 
     int myMax = 0; 
     if(min.getText().toString()!="") 
     myMin = Integer.parseInt(min.getText().toString()); 
     if(max.getText().toString()!="") 
     myMax = Integer.parseInt(max.getText().toString()); 

     String minString = String.valueOf(myMin); 
     String maxString = String.valueOf(myMax); 

     int f = (int) ((Math.random()*(myMax-myMin+1))+myMin); 

     if (minString.equals("")) 
     { 
      // Do Nothing 
     } 

     if (maxString.equals("")) 
     { 
      // Do Nothing 
     } 
+0

現在它不工作:( –

+0

PLZ檢查! – Neji

+0

仍然崩潰:(:( –

0
check = input.getText().toString(); 
try { 
    if (!check.equals("null")) { 
     int max = Integer.parseInt(input.getText().toString()); 
     int constant1 = 1; 
     int constant2 = 1; 
     int nextNumber = 0; 
     int count = 0; 
     String fibResult = ""; 
     for (int i = 0; i <= max; i++) { 
      fibResult += "F" + count + "=" + nextNumber + "\n"; 
      constant1 = constant2; 
      constant2 = nextNumber; 
      nextNumber = constant1 + constant2; 
      count++; 
     } 
     dspResults.setText("\n" + fibResult); 
    } else { 
     dspResults.setVisibility(View.VISIBLE); 
     dspResults.setText("Invalid"); 
     dspResults.setText(Gravity.CENTER); 
     dspResults.setTextColor(Color.DKGRAY); 
    } 
} catch (IllegalArgumentException e) { 
    e.printStackTrace(); 
} 
+0

這裏的檢查是一個字符串,它被用來檢查空值, 請幫我給一個代碼,它適用於Null! – user3500976

+0

我想用switch語句做一個簡單的斐波那契代碼, 我想檢查給定的edittext輸入字符串值是否爲空, 如果不是null,那麼如果語句代碼應該執行其他else語句, if語句代碼有效好,但如果給出的edittext是空或空或「」,那麼它不會執行else語句, 它會崩潰,如果不放在try塊中。 我如何使它工作? – user3500976

0
public void onClick(View v) { 



      EditText min = (EditText) findViewById(R.id.EditText01); 
      EditText max = (EditText) findViewById(R.id.maxnum); 
      EditText res = (EditText) findViewById(R.id.res); 



      int myMin = Integer.parseInt(min.getText().toString()); 
      int myMax = Integer.parseInt(max.getText().toString()); 

      String minString = String.valueOf(myMin); 
      String maxString = String.valueOf(myMax); 

      int f = (int) ((Math.random()*(myMax-myMin+1))+myMin); 
      { 

      if (minString.equals("")) 
      { 
       // Do Nothing 
       res.setText(String.valueOf(f)); 
        return false; 

      } 

      else if (maxString.equals("")) 
      { 
       // Do Nothing 
       res.setText(String.valueOf(f)); 
       return false; 

      } 

      else 
      res.setText(String.valueOf(f)); 

      return true ; 
     }