STEP1.手機APP介面設計
手機介面的資料夾位在BMI(自己取名) →app→ res → layout裡面的activity_main.xml(根據當初取名會有所不同)
從Palette視窗裡拉出需要用的元件或者也可以切換到Text手打元件
=========================================
1.首先拉出LinearLayout(vertical) , 在拉五個LinearLayout(horizontal)到LinearLayout(vertical)的底下
2.切換至Text改變五個LinearLayout(horizontal)的屬性,將寬跟高的屬性改為"wrap_content"
"fill_parent" 代表填滿父控制項,在這裡通常是指撐滿螢幕(寬度或是高度)
"wrap_content" 就是指依照你內容有多少就給你多少(寬度或是高度)
LinearLayout語法
3.在將TextView拉至1,2,4,5的LinearLayout(horizontal),由上至下輸入"身高","體重","結果","診斷"
TextView語法
android:id屬性
介面元件的android:id屬性是為了讓程式碼可以在使用介面中找到指定的元件的索引 , 因此每個元件的id不重複
====================================
4.接著拉兩個EditText(Number)到1 , 2個LinearLayout(horizontal)裡面供使用者輸入身高 , 體重
EditText語法
5.將Button(按鈕)元件拉入第3個LinearLayout(horizontal),將Text改為"送出"
Button語法
這樣就完成了介面的設計
完整程式碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | <LinearLayout android:layout_width="368dp" android:layout_height="495dp" android:orientation="vertical" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="8dp"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="身高" /> <EditText android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:inputType="numberDecimal" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="體重" /> <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:inputType="numberDecimal" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="送出" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="結果" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="TextView" /> </LinearLayout> </LinearLayout> |
STEP2.撰寫BMI功能
撰寫方式
導入函數的部分若是跟元件有相關的話 , 可以不用事先打 , 下面程式碼打完後 , 有用的函數Android Studio會自己導入
完整程式碼
<package com.example.user.bmi;
import android.icu.text.NumberFormat; import android.os.Build; import android.support.annotation.RequiresApi; 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;
public class MainActivity extends AppCompatActivity { EditText haha; EditText wawa;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); haha=(EditText)findViewById(R.id.lala); wawa=(EditText)findViewById(R.id.blabla); Button submit=(Button)findViewById(R.id.button); submit.setOnClickListener(new Button.OnClickListener() { @RequiresApi(api = Build.VERSION_CODES.N) public void onClick(View arge0) { if (!("".equals(haha.getText().toString()) || "".equals(wawa.getText().toString()))) { float fh = Float.parseFloat(haha.getEditableText().toString()); float fw = Float.parseFloat(wawa.getEditableText().toString()); float fresult; TextView result = (TextView) findViewById(R.id.textView4); 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.textView5); 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("重度肥胖 "); } } }); } } |
< // 我 ..............頭好痛 ===