-1

ねえ、BMI のシンプルな Android アプリケーションを作成したいです。このコードを見つけましたが、このコードは LBS と INCH で計算されます。しかし、私のプログラムは KG と CM で作成する必要があります。私はすでに再コード化しようとしています。しかし、私はまだ解決策を見つけることができません。

これがコードです。

package com.example.bmicalculator;

    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TextView;
    import android.widget.EditText;
    import android.widget.Button;
    import android.view.View;

    public class BMICalculatorActivity extends Activity {

    private EditText txtheight;
    private EditText txtweight;
    private TextView txtresult;
    private Button btncalculate;
    private double bmi = 0;
    private double valueheight = 0;
    private double valueweight = 0;
    private String resulttext;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initControls();
        /*TextView tv = new TextView(this);
        tv.setText("BMI Calculator");
        setContentView(tv);*/

   }


    private void initControls() {
        txtheight = (EditText)findViewById(R.id.txtheight);
        txtweight = (EditText)findViewById(R.id.txtweight);
        txtresult = (TextView)findViewById(R.id.txtresult);
        btncalculate = (Button)findViewById(R.id.btncalculate);
        //btnreset = (Button)findViewById(R.id.btnreset);
        btncalculate.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ calculate(); }});
        //btnreset.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ reset(); }});
    }

    private void calculate()    {
        valueheight =Double.parseDouble(txtheight.getText().toString());
        valueweight =Double.parseDouble(txtweight.getText().toString());
        bmi = (valueweight / (valueheight * valueheight));
        //txttipamount.setText(Double.toString(bmi));
        if (bmi >= 30) { /* obese */
            resulttext = "Your BMI of " + Double.toString(bmi) + " is OBESE.";
            txtresult.setText(resulttext);
        } else if (bmi >= 25) {
            resulttext = "Your BMI of " + Double.toString(bmi) + " is OVERWEIGHT.";
            txtresult.setText(resulttext);
        } else if (bmi >= 18.5) {
            resulttext = "Your BMI of " + Double.toString(bmi) + " is IDEAL.";
            txtresult.setText(resulttext);
        } else {
            resulttext = "Your BMI of " + Double.toString(bmi) + " is UNDERWEIGHT.";
            txtresult.setText(resulttext);
        }
    }
    private void reset()
    {
        txtresult.setText("Your BMI is unknown.");
        txtheight.setText("0");
        txtweight.setText("0");
    }



}

前もって感謝します。

4

2 に答える 2

6

BMI (Body Mass Index) をメートル法で取得するには、体重 (kg) を身長 (m^2) で割る必要があります。したがって、cm で身長を求める場合は、計算を行う前に 100 で割ります。例:

private void calculate()    {
    valueheight =Double.parseDouble(txtheight.getText().toString());
    valueweight =Double.parseDouble(txtweight.getText().toString());
    Double valueheightmeters;

    valueheightmeters = valueheight / 100; // Converting to meters.
    bmi = (valueweight / (valueheightmeters * valueheightmeters));

    //txttipamount.setText(Double.toString(bmi));
    if (bmi >= 30) { /* obese */
        resulttext = "Your BMI of " + Double.toString(bmi) + " is OBESE.";
        txtresult.setText(resulttext);
    } else if (bmi >= 25) {
        resulttext = "Your BMI of " + Double.toString(bmi) + " is OVERWEIGHT.";
        txtresult.setText(resulttext);
    } else if (bmi >= 18.5) {
        resulttext = "Your BMI of " + Double.toString(bmi) + " is IDEAL.";
        txtresult.setText(resulttext);
    } else {
        resulttext = "Your BMI of " + Double.toString(bmi) + " is UNDERWEIGHT.";
        txtresult.setText(resulttext);
    }
}

それが役立つことを願っています!

于 2013-04-18T01:34:35.020 に答える