我是编码新手,对我的知识有点怀疑,所以如果我忽略了一些简单的事情,请原谅我,但我一直在寻找 2 个小时的答案。
我的一门课程将允许用户输入他们的身高和体重,并为他们返回 BMI(身体质量指数)。问题是一旦他们单击执行计算的按钮并将其显示在 TextView 中,什么也没有发生。我从 LogCat 看到的唯一错误是getCursorCapsMode on inactive InputConnection
. 此错误仅在我使用next
按钮在softkeyboard
EditText 字段之间移动时显示,因此我不认为这是相关的,因为当我在字段之间手动移动并且没有收到此错误时仍然没有结果。如果您有任何信息,请随时协助解决此问题。
这是来自 BMI android 开发教程的重复代码,除了项目的 id 之外逐字逐句,但是当加载到模拟器中时,教程可以完美运行。我的代码如下:
public class FuncConverter extends DashMenuActivity {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView (R.layout.dash_converter7);
Spinner converter_spinner = (Spinner) findViewById(R.id.converter_spinner);
ArrayAdapter<CharSequence> converter_adapter = ArrayAdapter.createFromResource(
this, R.array.converter_array, android.R.layout.simple_spinner_item);
converter_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
converter_spinner.setAdapter(converter_adapter);
}
public void calcClick (View view) {
if (view.getId() == R.id.convert_btn_calc) {
EditText weight_edit = (EditText) findViewById(R.id.weight_edit);
EditText height_edit = (EditText) findViewById(R.id.height_edit);
TextView bmi_text = (TextView) findViewById(R.id.bmi_text);
float weight = Float.parseFloat(weight_edit.getText().toString());
float height = Float.parseFloat(height_edit.getText().toString());
float bmiValue = calculateBMI (weight, height);
String bmiCalc = interpretBMI (bmiValue);
bmi_text.setText(bmiValue + " - " + bmiCalc);
}
}
private float calculateBMI (float weight, float height) {
return (float) (weight / (height * height));
}
private String interpretBMI(float bmiValue) {
if (bmiValue < 16) {
return "Severley Underweight";
} else if (bmiValue < 18.5) {
return "Underweight";
} else if (bmiValue < 25) {
return "Healthy weight";
} else if (bmiValue < 30) {
return "Overweight";
} else {
return "Obese";
}
}}