我有這樣的代碼:如何確保我得到一個整數從EditText上
EditText value = (EditText)findViewById(R.id.editbox);
Integer int_value = Integer.valueOf(value.getText().toString());
當有在EditText上一些它的偉大工程,但FC我的應用程序時,它是空的或有文字等
我怎樣才能確保int_value有一個數字?我也試過parseInt,但結果相同。
我有這樣的代碼:如何確保我得到一個整數從EditText上
EditText value = (EditText)findViewById(R.id.editbox);
Integer int_value = Integer.valueOf(value.getText().toString());
當有在EditText上一些它的偉大工程,但FC我的應用程序時,它是空的或有文字等
我怎樣才能確保int_value有一個數字?我也試過parseInt,但結果相同。
try {
Integer int_value = Integer.parseInt(value.getText().toString());
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在您的xml文件中的EditText
聲明中添加android:inputType="number"
。
當不能被解析的串供應作爲輸入Integer
的valueOf
,它將引發NumberFormatException
。只需用try catch
塊圍繞着它來處理這樣的情況:在XML
Integer int_value = null;
try {
int_value = Integer.valueOf(value.getText().toString());
} catch (NumberFormatException e) {
// here you can handle the case where the text wasn't an integer
}
// carry on...
組的inputType = 「號」,並在代碼
if(!"".equals(value.getText().trim()) && value.getText().trim()!= null) {
//sure, input is not empty and is a number.
}
檢查空值與此嘗試,
editText.setOnFocusChangeListener(new OnFocusChangeListener(){
@Override
public void onFocusChange(View v,boolean hasFocus)
{
//check for emptiness
if(editText.length()==0)
{
editText.setError(error_required);
}
else if(!numberValidation(editText.getText().toString()))
{
editText.setError("Only Numbers");
}
}
}
);
In main.xml add,
EditText tag, android:numeric="integer/number/decimal"
這隻能解決其中一個問題。如果EditText爲空,這完全沒有幫助。 – Espen
如果它是空的,那麼你將如何從edittext獲取值。 –