我正在使用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附近添加引号但是也没有用。
答案 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中字符串的长度。