将空白输入转换为零?

时间:2014-06-13 03:34:01

标签: java android eclipse

我正在使用eclipse作为Android应用程序,用户输入一个公式中使用的值。当他们不输入值时,它会出错,所以我希望任何空白输入都改为零。继承了我的代码:

EditText numAA=(EditText)findViewById(R.id.numAAAn);
Double num1=Double.parseDouble(numAA.getText().toString());
if ((EditText)findViewById(R.id.numAAAn) == null) {
    numAA=0;
}

它在0上有一个错误,表示"类型不匹配:无法从int转换为edittext"所以我假设它想要它转换,但我不知道如何。我累了在0附近添加引号但是也没有用。

3 个答案:

答案 0 :(得分:2)

在解析double之前,检查numAA是空还是空。如果是,则指定默认值。

这是我的解决方案:

Double num1 = 0.0; // Default value..
EditText numAA = (EditText) findViewById(R.id.numAAAn);

if (numAA.getText() != null && numAA.length() != 0) {
    num1 = Double.parseDouble(numAA.getText().toString());
} else {
    numAA.setText("0");
}

您可以创建单独的函数来执行此操作。像:

public Double parseInput(Double defaultValue, EditText editText) {
    if (editText.getText() != null && editText.length() != 0) {
        return Double.parseDouble(editText.getText().toString());
    } else {
        editText.setText("0");
    }
    return defaultValue;
}

来自来电者,请使用它:

Double num1 = parseInput(0.0, (EditText) findViewById(R.id.numAAAn));

答案 1 :(得分:0)

int counter=0;
EditText numAA=(EditText)findViewById(R.id.numAAAn);
Double num1=Double.parseDouble(numAA.getText().toString());
if ((EditText)findViewById(R.id.numAAAn) == null) {
    numAA.setText(counter+"");
}

试试这个:

答案 2 :(得分:0)

请尝试以下代码:

EditText numAA=(EditText)findViewById(R.id.numAAAn);
    if (numAA.length()==0) {
        numAA.setText("0");//or if you want nothing to show in the edittext, leave this one blank
    } else {
        Double num1=Double.parseDouble(numAA.getText().toString());
    }
}

length()方法检查edittext中字符串的长度。