【Android】Android Studio 的開發初體驗!!

安裝與設定好Android Studio開發環境,並且將模擬器裝好後,預設的顯示結果就是 Hello World!! ,此次我們練習寫一個BMI的計算功能...

 1. 新專案啟動後,會看到如下專案畫面,預設會有一個Hello World的文字與按鈕。

2. 先將預設的Hello World文字控制項(TextView)刪除。再至控制項中選擇一個LinearLayout(vertical)控制項,拖拉到下方ComponentTree視窗中的ConstruantLayout下。然後依序拖拉五個LinearLayout(horizontal)控制項在LinearLayout(vertical)控制項下方,表示我要在畫面建立一個直立面放入五個橫面。

3. 接下來就是在五個橫面中,依序加入以下控制項,並設定ID與顯示文字。

LinearLayout(horizontal) 控制項名稱 ID 顯示文字
1 TextView txtVal1 身高
1 Number editTextWeight  
2 TextView txtVal2 體重
2 Number editTextHeight  
3 Button btnSubmit Submit
4 TextView txtVal3 試算
5 TextView txtVal4 說明

4. 如果橫面發生高度無法透過屬性修正,可以點擊ComponentTree下方的Text頁籤,找到如下圖activity_main.xml中的設定值給刪除。

5. 然後進入程式開發的位置,MainActivity.java,依序輸入程式碼囉~~

6. 程式撰寫當初,如果未引用相關套件,就會發現有紅色的提醒與文字。  此錯誤只要將下面一行加入在上方引用套件區就可以。

 import java.text.NumberFormat;

 

7. 程式撰寫完畢後,按下執行,選擇執行的裝置就可以看到結果囉!

完整程式碼參考如下:

package com.example.mac_lin.webpageapplication;

        import android.support.v7.app.AppCompatActivity;
        import android.os.Bundle;

        import android.view.View;
        import android.widget.Button;
        import android.widget.EditText;
        import android.widget.TextView;

        import java.text.NumberFormat;

public class MainActivity extends AppCompatActivity {

    EditText hi;   //宣告身高文字控制項全域變數
    EditText wg;  //宣告體重文字控制項全域變數

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        hi=(EditText)findViewById(R.id.editTextWeight);
        wg=(EditText)findViewById(R.id.editTextHeight);
        Button submit = (Button)findViewById(R.id.btnSubmit);

        // 按下Sumbit按鈕事件
        submit.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View arg0) {
                //判斷條件 身高 跟 體重 都有輸入值才執行
                if ( !("".equals(hi.getText().toString())
                        || "".equals(wg.getText().toString())) )
                {
                    //取得身高與體重輸入值
                    float fh = Float.parseFloat(hi.getEditableText().toString());
                    float fw = Float.parseFloat(wg.getEditableText().toString());
                    float fresult;
                    TextView result = (TextView)findViewById(R.id.txtVal3);
                    fh = fh/100;
                    fh = fh*fh;

                    //// 數字格式與限制兩位值
                    NumberFormat nf = NumberFormat.getInstance();
                    nf.setMaximumFractionDigits(2);
                    fresult = fw/fh;
                    result.setText(nf.format(fw/fh) +"");
                    TextView dia = (TextView)findViewById(R.id.txtVal4);

                    // 顯示診斷結果
                    if (fresult<18.5)
                        dia.setText("體重過輕");
                    else if (18.5 <= fresult && fresult< 24)
                        dia.setText("正常範圍");
                    else if (24 <=fresult && fresult < 27)
                        dia.setText("過    重");
                    else if (27 <=fresult && fresult < 30)
                        dia.setText("輕度肥胖");
                    else if (30 <= fresult && fresult < 35)
                        dia.setText("中度肥胖");
                    else if (fresult >= 35)
                        dia.setText("重度肥胖        ");
                }
            }
        });
    }
}