安裝與設定好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("重度肥胖 ");
}
}
});
}
}