2016-06-21 89 views
0

我試圖檢查EditText中的輸入是否爲null。檢查「inputType = number」的EditText是否爲空

if(editTextSum.getText().toString() != null) { 
    userStartingBalance = Integer.valueOf(editTextSum.getText().toString()); 
} else { 
    userStartingBalance = 0; 
} 

這裏userStartingBalance是Integer類型。

但我得到一個錯誤,每次說

無法轉換成" "int,而該行指出,「如果情況」如果我不輸入任何內容。

爲什麼不去其他案件?

解決方法是什麼?

+0

一個問題是,'userStartingBalance'是'int',正如你指出。 'Integer'類型爲'int';然而'valueof()'接受'int'作爲參數,但是你有'toString()'。所以*你傳遞一個'string'到一個需要'int'的參數。*請參考https://developer.android.com/reference/java/lang/Integer.html – NonCreature0714

回答

2

您沒有正確地處理在您的EditText只是中沒有任何內容的情況下。

在這種情況下,editTextSum.getText().toString()將不會返回null(實際上,它不應該爲null)。相反,它會返回一個空字符串。

相反,您可能想嘗試editTextSum.getText().toString().isEmpty()來代替。如果長度爲0,則isEmpty()將返回真。

1

嘗試:

Integer.parseInt(editTextSum.getText().toString())

0

爲什麼它不會出現其他情況?

因爲您在Null上調用ToString()。如果該字段沒有值,那麼它將設置NULL,如果你嘗試運行toString()方法,你會收到這個錯誤。在檢索值之前進行Null檢查。

解決方法

if(editTextSum.getText() != null) 
{ 
    userStartingBalance = Integer.parseInt(editTextSum.getText().toString()); 
} 
else 
{ 
    userStartingBalance =0; 
}