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);
}