当我尝试运行我的Android应用程序时,我收到一条错误消息:java.lang.NumberFormatException:无效的double:""。这是我的代码:
public class MainActivity extends Activity {
double score;
EditText gpa;
EditText sat;
EditText act;
Button calc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gpa = (EditText) findViewById(R.id.gpa);
String gpaString = gpa.getText().toString();
final double gpaDouble = Double.parseDouble(gpaString);
sat = (EditText) findViewById(R.id.sat);
String satString = sat.getText().toString();
final int satInt = Integer.parseInt(satString);
act = (EditText) findViewById(R.id.act);
String actString = act.getText().toString();
final int actInt = Integer.parseInt(actString);
calc = (Button) findViewById(R.id.calc);
calc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(actInt/36>satInt/2400){
score = (0.6*gpaDouble*25)+(0.4*(actInt/36)*100);
}else{
score = (0.6*gpaDouble*25)+(0.4*(satInt/2400)*100);
}
}
});
}
}
我基本上想从三个EditTexts中获取数字,将其中一个变为双精度,将另外两个变为整数。然后我会使用这些变量来设置另一个双变量的值。在运行应用程序之前,我没有收到错误。我觉得当EditText字段为空时,它将无法正确解析,但我不确定如何解决这个问题。问题是什么?
答案 0 :(得分:1)
Invalid double: "".
您正在解析onCreate()
值而不添加任何默认值,因此异常
final double gpaDouble = Double.parseDouble(gpaString);
因为""
(空String
不是Double
)