2010-12-10 182 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(); 
}