2012-06-12 42 views
0

我有這樣的代碼:如何確保我得到一個整數從EditText上

EditText value = (EditText)findViewById(R.id.editbox); 
Integer int_value = Integer.valueOf(value.getText().toString()); 

當有在EditText上一些它的偉大工程,但FC我的應用程序時,它是空的或有文字等

我怎樣才能確保int_value有一個數字?我也試過parseInt,但結果相同。

回答

3
try {    
Integer int_value = Integer.parseInt(value.getText().toString()); 
      } catch (NumberFormatException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
     } 
4

在您的xml文件中的EditText聲明中添加android:inputType="number"

+0

這隻能解決其中一個問題。如果EditText爲空,這完全沒有幫助。 – Espen

+0

如果它是空的,那麼你將如何從edittext獲取值。 –

1

當不能被解析的串供應作爲輸入IntegervalueOf,它將引發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... 
0

組的inputType = 「號」,並在代碼

if(!"".equals(value.getText().trim()) && value.getText().trim()!= null) { 

    //sure, input is not empty and is a number. 

} 
0

檢查空值與此嘗試,

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" 
相關問題