昨天我們將所有的文字內容都寫在activity_main.xml裡面,
但是以Android設計來說,
這不是很好的設計,
通常都會將字串獨立出來,
放在strings.xml裡面,
而且可以透過Android預設的功能,
來實作多國語系,
多國語系的部分就等明後天再說,
今天先實作把字串抽離出來,
以下是寫好的strings.xml的內容
<resources>
<string name="app_name">MyBMI</string>
<string name="bmi_hello">哈囉!BMI</string>
<string name="bmi_height">身高 (cm)</string>
<string name="bmi_weight">體重 (kg)</string>
<string name="bmi_btn">計算BMI值</string>
<string name="bmi_result">你的BMI值是</string>
<string name="advice_light">你該多吃點</string>
<string name="advice_average">體型很棒喔!</string>
<string name="advice_heavy">你該節食了</string>
</resources>
然後要使用strings.xml的代號也很簡單,
Android都會編譯到R裡面,
在xml呼叫用 @string/bmi_hello 即可
在java呼叫要用 R.string.bmi_hello,
不過要轉換成String才能正常使用 getText(R.string.bmi_hello),
以下是activity_main.xml修改後的結果
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="@string/bmi_hello" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/bmi_height" />
<EditText
android:id="@+id/height"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" />
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/bmi_weight" />
<EditText
android:id="@+id/weight"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/bmi_btn" />
<TextView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:textAppearanceLarge"/>
<TextView
android:id="@+id/suggest"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:textAppearanceLarge"/>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
介面跟昨天一樣