2010-12-10 232 views
0

嘗試確認EditText工具在用戶單擊按鈕時不爲空。只要EditText不爲空,代碼就可以工作。但是,每當它是空白我的程序崩潰。任何想法我做錯了什麼?謝謝。驗證EditText輸入

if (et1.getText().toString() != null) { 

    inpt_weight = Integer.parseInt(et1.getText().toString()); 
    Toast.makeText(getBaseContext(), "weight is not null", Toast.LENGTH_LONG).show(); 


     } else { 

     inpt_weight = 0; 
     Toast.makeText(getBaseContext(), "weight is null", Toast.LENGTH_LONG).show(); 

     }; 

回答

1

我認爲它試圖解析一個空字符串( 「」)爲一個整數,這是不可能 嘗試:

if (!et1.getText().toString().equalsIgnoreCase("") && et1.getText().toString() != null) 
+0

是的我想補充&&!et1.getText()。的toString()。等於( 「」)添加到您的if語句。此外,如果你正在尋找嚴格的號碼輸入,你可能會刪除所有''他們已經打空間。 – schwiz 2010-12-10 03:26:31

1

這將是一個好辦法:

if(et1.getText().toString().trim().length()==0){ 
Log.d("No data","No text found in the edit text"); 
} 

這也檢查用戶是否只放置了空格。

在你的代碼中,我看到你正在將文本轉換爲數字。 在這種情況下,要麼爲編輯文本輸入正確的IMEMethod,以便它只接受數字,要麼檢查您的代碼中用戶只輸入了數字字符,否則,如果用戶輸入了非數字,則最終會出現NumberFormatException數字字符。

1

嘗試下面的代碼,請..

if(et1.getText().toString().equals("")){ 
Toast.makeText(getApplication(), "weight is null", Toast.LENGTH_SHORT).show();} 
else{ 
    inpt_weight = Integer.parseInt(et1.getText().toString()); 
    Toast.makeText(getApplication(), "weight is not null & it is : "+inpt_weight,Toast.LENGTH_SHORT).show(); 
}