Java 验证EditText是否为空Android Studio

Java 验证EditText是否为空Android Studio,java,android,android-edittext,Java,Android,Android Edittext,我被困在这种情况下,不知道该怎么办。 我需要它返回true或false,如果用户没有将值插入EditText。实际上,应用程序崩溃并关闭 我是佩索瓦尔,阿尤达的总统。。准确地验证通常情况下的编辑文本(编号)分支机构是否存在错误,是否存在连续性错误,是否存在条件错误 campoBNow=findviewbyd(R.id.txtMenorBNow); campoLucro=findviewbyd(R.id.txtLucro); btnClicou.setOnClickListener(新视图.OnC

我被困在这种情况下,不知道该怎么办。 我需要它返回
true
false
,如果用户没有将值插入
EditText
。实际上,应用程序崩溃并关闭

我是佩索瓦尔,阿尤达的总统。。准确地验证通常情况下的编辑文本(编号)分支机构是否存在错误,是否存在连续性错误,是否存在条件错误

campoBNow=findviewbyd(R.id.txtMenorBNow);
campoLucro=findviewbyd(R.id.txtLucro);
btnClicou.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//现在,我们需要一个新的文本。
字符串pegaBNow=campoBNow.getText().toString();
字符串pegaLucro=campoLucro.getText().toString();
String item=spNivel.getSelectedItem().toString();//Atribui o组合框参数字符串。。。
//在浮动的基础上,对浮动的价格进行调整。
double bNow=double.parseDouble(pegaBNow);
double lDes=double.parseDouble(pegaLucro);
/*
验证条件。。。
*/
if(TextUtils.isEmpty(pegaBNow)){
tv5.setText(“现在购买的价值”);//现在购买的价值。。。
//Toast.makeText(getApplicationContext(),“DIGITE UM VALOR DE BUY NOW”,Toast.LENGTH_LONG).show();
}else if(TextUtils.isEmpty(pegaLucro)){
tv5.setText(“DIGITE UM VALOR DE LUCRO”);//LUCRO vazio,mostra mensagem。。。
//Toast.makeText(getApplicationContext(),“DIGITE UM VALOR DE LUCRO”,Toast.LENGTH_LONG).show();
}else if(TextUtils.isEmpty(pegaBNow)和&TextUtils.isEmpty(pegaLucro)){
//Toast.makeText(getApplicationContext(),“DIGITE OS VALORES”,Toast.LENGTH_LONG.show();
}否则{
//在浮动的基础上,对浮动的价格进行调整。
双精度=((bNow-(0.05*bNow))-lDes);//计算结果。。。
如果(res<0){
tv5.setText(“PROPORÃO LUCRO E BUY NOW INCORRETO”);
Toast.makeText(getApplicationContext(),“PROPORÃO uncomptÍVEL!”,Toast.LENGTH_LONG.show();
}否则{
//如果《宪章》中的第四条。。。
如果(项目==“Ouro”){
如果(res>0&&res 5000&&res 0&&res 2000&&res 0&&res 1000&&res移动行

        double bNow = Double.parseDouble(pegaBNow);
        double lDes = Double.parseDouble(pegaLucro);
至最终else部分(在检查字符串空条件后工作)

在检查字符串是否为空之前,
尝试获取双精度值

如果为空,则
parseDouble()
将抛出
NumberFormatException
,这是应用程序崩溃的原因。

TextUtils.isEmpty(变量名称)
应该可以工作,如果应用程序仍然崩溃,您可以使用debug来了解崩溃的原因和位置。

使用“for”循环


如果所有字段均为非空,则将返回true。

我认为您的应用程序崩溃,因为parseDouble()无法解析空语句(如果文本框中没有任何内容)。您将在调试模式下看到它

在parseDouble()之前选中文本框中的值:


if(请添加logcat,你没有解释,只是“那样做”,我现在收回:)
        double bNow = Double.parseDouble(pegaBNow);
        double lDes = Double.parseDouble(pegaLucro);
private boolean validate(EditText[] fields){
    for(int i = 0; i < fields.length; i++){
        EditText edtTxtName= fields[i];
        if(edtTxtName.getText().toString().length() <= 0){
            return false;
        }
    }
    return true;
}
boolean checkField= validate(new EditText[] { campoBNow, campoLucro })
if (pegaBNow <= 0 or pegaLucro <= 0) {
   'Emtpy Text -> do sth. but no Parse
} else {
   double bNow = parseDouble(pegaBNow);
   double lDes = parseDouble(pegaLucro);
}