2014-04-07 69 views
0

我犯了這段代碼,當我嘗試將可編輯的值轉換爲整數時,程序崩潰了,因爲它的文本類型是十進制的,我懷疑它是在應用程序必須將可編輯字符串更改爲字符串由於在編輯文本時編輯文本爲空時事實崩潰。可編輯的字符串崩潰

EditText Y = (EditText) findViewById(R.id.y); 
     Y.addTextChangedListener(new TextWatcher(){ 
      @Override 
      public void afterTextChanged(Editable s) { 
       if(s != null){ 
        int Yvalue = Integer.parseInt(s.toString()); 
       } 
      } 
+0

'Y'爲空或'Integer.parseInt'失敗 – Blackbelt

+0

發佈logcat錯誤。 –

+0

也許使用try-catch?嘗試{ \t \t \t int Yvalue = Integer.parseInt(s); \t \t}趕上(例外五){ \t \t \t //無法解析 \t \t} –

回答

0

看起來我更有可能在將字符串解析爲整數時發生NumberFormatException。嘗試把它放在try/catch中,例外。

try { 
    Yvalue = Integer.parseInt(number); 
} catch (NumberFormatException e) { 
    Yvalue = defaultVal; // or do whatever necessary 
} 
+0

當編輯文本無法轉換爲浮動應用程序崩潰,除非它是一個嘗試,顯然工作。謝謝 – user192198

0

嘗試解析字符串的值浮起並得到它在浮子可變

浮子y值= Float.parseFloat(s.toString());

0

假設你只想要整數,嘗試這樣的事情:

@Override 
public void afterTextChanged(Editable s) { 

    if (s.length() == 0) { 
    // complain about no input 
    } else { 
    try { 
     int yValue = Integer.parseInt(s.toString()); 

     // ... 

    } catch (NumberFormatException e) { 
     // complain about invalid input 
    } 
    } 
} 

我不是一個Android開發者,但我會感到驚訝,如果沒有爲遮罩添加到您的輸入方式防止輸入整數以外的任何字段。

+0

完美地工作,並採取較少的代碼行 – user192198