今天來個簡單的綜合應用,將前面所介紹的東西放在一起,結合設計出一個BMI計算器。這次介面大多與之前介紹的差不多,主要會放在講MainActivity.java裡程式碼的部分。

由於都是前幾篇內容的元件,這裡就不多贅述程式碼,可以當作練習試著做看看喔!![]()
今天的重點則跳到MainActivity.java
public class MainActivity extends AppCompatActivity {
    EditText height;     //宣告變數,型態為EditText(全域變數)
    EditText weight;     //宣告變數,型態為EditText(全域變數)
    Button bt1;     //宣告變數,型態為Button(全域變數)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        height=(EditText)findViewById(R.id.et1);     //取得輸入物件(身高)
        weight=(EditText)findViewById(R.id.et2);     //取得輸入物件(體重)
    }
    public void calculate(View v){              //按鈕事件
        if(!("".equals(height.getEditableText().toString())) ||
           !("".equals(weight.getEditableText().toString()))){              
            //判斷輸入是否為空值
            float fh=Float.parseFloat(height.getEditableText().toString());      
                //將輸入值(身高)的字串,轉換會為float
            float fw=Float.parseFloat(weight.getEditableText().toString());      
                //將輸入值(體重)的字串,轉換會為float
            float fresult;                     //宣告變數,型態為float(區域變數)
            TextView result=(TextView)findViewById(R.id.tx5);      //取得物件,放置BMI結果
            fh=fh/100;
            fh=fh*fh;
            NumberFormat nf=NumberFormat.getInstance();       //設定數字格式,並宣告物件nf
            nf.setMaximumFractionDigits(2);                   //小數點設定顯示最多後兩位
            fresult=fw/fh;
            result.setText(nf.format(fresult)+"");            //將算出來的BMI格式化
            TextView dia=(TextView)findViewById(R.id.tx6);    //取得物件,放置診斷結果
            if(fresult<18.5)                                  //判斷BMI的數值
                dia.setText("體重過輕");
            else if(fresult>=18.5&&fresult<24)
                dia.setText("正常範圍");
            else if(fresult>=24&&fresult<27)
                dia.setText("過重");
            else if(fresult>=27&&fresult<30)
                dia.setText("輕度肥胖");
            else if(fresult>=30&&fresult<35)
                dia.setText("中度肥胖");
            else if(fresult>=35)
                dia.setText("重度肥胖");
        }
    }
}
以上算是這幾天的段落整理,希望各位能熟悉這些元件,將對之後寫程式大有幫助。
今天的就降到這裡,謝謝大家!![]()