我的android应用程序因两个空的edittext字段而崩溃
以上是我的代码,当我将其中任何一个留空时,它会崩溃。如何克服它。只需检查用户是否输入了任何内容,然后解析您的值:我的android应用程序因两个空的edittext字段而崩溃,android,mobile,Android,Mobile,以上是我的代码,当我将其中任何一个留空时,它会崩溃。如何克服它。只需检查用户是否输入了任何内容,然后解析您的值: @Override public void onClick(View v) { float Percentage, newPercentage = 0; int Number; EditText Total = (EditText) findViewById(R.id.editText3); E
@Override
public void onClick(View v)
{
float Percentage, newPercentage = 0;
int Number;
EditText Total = (EditText) findViewById(R.id.editText3);
EditText Done = (EditText) findViewById(R.id.editText4);
float num1 = Float.parseFloat(Total.getText().toString());
float num2 = Float.parseFloat(Done.getText().toString());
Percentage = (num2 / num1) * 100;
}
}
试试这个
if(!Total.getText().toString().matches(""))
float num1 = Float.parseFloat(Total.getText().toString());
若EditText不为空,则可以应用条件,然后代码就这样运行
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!Total.getText().toString().trim().equals("")&&!Done.getText().toString().trim().equals("")){
float num1 = Float.parseFloat(Total.getText().toString());
float num2 = Float.parseFloat(Done.getText().toString());
Percentage = (num2 / num1) * 100;}
}
});
尝试使用Try…Catch
float Percentage, newPercentage = 0;
int Number;
EditText Total = (EditText) findViewById(R.id.editText3);
EditText Done = (EditText) findViewById(R.id.editText4);
String total=Total.getText().toString();
String done=Done.getText().toString();
if (!total.isEmpty() && !done.isEmpty()) {
float num1 = Float.parseFloat(Total.getText().toString());
float num2 = Float.parseFloat(Done.getText().toString());
Percentage = (num2 / num1) * 100;
}else {
Toast.makeText(OpenFile.this, "Fill values", Toast.LENGTH_SHORT).show();
}
首先检查您是否正确找到editText 之后,还要检查isEmpty条件以避免NullPointer异常
float num1 = 0.00f;
float num2 = 0.00f;
try {
num1 = Float.parseFloat(Total.getText().toString());
num2 = Float.parseFloat(Done.getText().toString());
Percentage = (num2 / num1) * 100;
}
catch(NumberFormatException ex) {
//Handle Non Float Exception
Toast.makeText(getApplicationContext(), "Invalid input !",Toast.LENGTH_LONG).show();
}
检查是否有空文本,如果不为空,则执行计算
if(!Total.getText().toString().isEmpty()&&!Done.getText().toString().isEmpty()){
float num1=float.parseFloat(Total.getText().toString());
float num2=float.parseFloat(Done.getText().toString());
百分比=(num2/num1)*100;}
}
});代码>发布完整代码您应该处理NumberParseException,在您的情况下,如果您将空字符串传递给parseFloat()函数,则有可能出现异常。是的,它与NumberFormatException一起工作。是的,它对我有效。
if (!editText1.getText().toString().isEmpty() && !editText2.getText().toString().isEmpty()){
float num1 = Float.parseFloat(Total.getText().toString());
float num2 = Float.parseFloat(Done.getText().toString());
}