问题描述
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
textView4 = findViewById(R.id.textView4);
editTextNumberDecimal2 = findViewById(R.id.editTextNumberDecimal2);
editTextNumberDecimal3 = findViewById(R.id.editTextNumberDecimal3);
button.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = editTextNumberDecimal2.getText().toString();
int kg = Integer.parseInt(s);
double pound = kg;
String k = editTextNumberDecimal3.getText().toString();
int cms = Integer.parseInt(k);
double ft = cms;
double bmi = (pound / ft / ft) * 10000;
if (bmi < 18.5) {
textView4.setText("Thin - Eat something");
}
else if (bmi < 25) {
textView4.setText("Fit - Keep it up");
}
else if (bmi < 30) {
textView4.setText("Fat - Go on a diet");
}
else {
textView4.setText("Very fat - Stop eating");
}
}
});
}
} ……………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… …………忽略这些点……………… ………………………………………………………………………………………………………………………………………………………… ...................................................
解决方法
您不能将空字符串解析为整数。所以先检查它是否为空。
public void onClick(View v) {
String s = editTextNumberDecimal2.getText().toString();
if(s.isEmpty()) return;
int kg = Integer.parseInt(s);
double pound = kg;
String k = editTextNumberDecimal3.getText().toString();
if(k.isEmpty()) return;
int cms = Integer.parseInt(k);
// ...
}