我是在Android学习的新人,我忘记了很多Java程序。这里我遇到了一个问题,我今天在Eclipse中执行了该程序。
public void cvOnClick (View cvView) {
EditText KilogramsInput = (EditText) findViewById(R.id.Kilograms);
EditText HeightInput = (EditText) findViewById(R.id.Height);
TextView BmiOutput = (TextView) findViewById(R.id.Bmi);
DecimalFormat BmiFormat = new DecimalFormat(".#####");
Double Heightdouble = Math.pow(Integer.parseInt(HeightInput.getText().toString()), 2);
String outcome = BmiFormat.format(Integer.parseInt(KilogramsInput.getText().toString())/Heightdouble);
BmiOutput.setText(outcome);
}
作为这个程序的最初目的,应该是平方的高度数。在Eclipse中执行没有错误。但是当我将数据(十进制)放在AVD中时,它会显示:the application has stopped unexpectedly
。
请让我知道此刻我该怎么办?
感谢您的帮助!布拉德
答案 0 :(得分:6)
您使用的是Integer.parseInt()
,但是当您输入double
而不是int
时会感到困惑。使用Double.parseDouble()
代替Integer.parseInt()
,它应该有效。
答案 1 :(得分:3)
如果在千克或高度编辑文本中输入非整数值,您将获得异常,因为您试图将它们解析为整数。使用Double.parseDouble()
代替Integer.parseInt()