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功能

JAVA檔的位置

撰寫方式

導入函數的部分若是跟元件有相關的話 , 可以不用事先打 , 下面程式碼打完後 , 有用的函數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("重度肥胖        ");


            }
        }
    });



    }
}

< // 我 ..............頭好痛 ===


Comments

comments powered by Disqus