私はコーディングが初めてで、知識に少し不安があるので、簡単なことを見落としていたら許してください。しかし、私は答えを2時間探していました.
私のクラスの 1 つは、ユーザーが身長と体重を入力できるようにし、BMI (Body Mass Index) を返すようにします。問題は、計算を実行して TextView に表示するボタンをクリックしても、何も起こらないことです。LogCat から表示される唯一のエラーはgetCursorCapsMode on inactive InputConnection
. このエラーは、のnext
ボタンを使用してsoftkeyboard
EditText フィールド間を移動する場合にのみ表示されるため、フィールド間を手動で移動してもこのエラーが発生しない場合でも結果が得られないため、これが関連しているとは考えていません。情報があれば、この問題についてもお気軽にご相談ください。
これは、アイテムの ID を除いて、BMI Android 開発チュートリアルからの複製コードですが、チュートリアルはエミュレーターに読み込まれると完全に機能します。私のコードは次のとおりです。
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";
}
}}