iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 14
1
Software Development

[Andriod] Andriod Studio 從入門到進入狀況系列 第 14

[Day 13] 我的第一個Android程式 - BMI程式設計(八) 程式碼補充說明

今天來講解昨天的程式碼,
xml就不贅述了,
對xml有興趣跟我說一下,
我再找機會補充吧...

今天主要針對java檔案來做說明,

為了要取得Button物件要import android.widget.Button;
為了要取得EditText物件要import android.widget.EditText;
為了要取得TextView物件要import android.widget.TextView;

其實這部分Android Studio會給提示,
所以也不用特別去記要引入什麼專案路徑,

Button button = (Button)findViewById(R.id.button);

取得Button的物件

button.setOnClickListener(calcBMI);

要import android.view.View;
這個是註冊按鈕的點擊事件,
其實Android要觸發事件有3~4種方式,
這個從明天開始為期幾天的番外篇會說明這部分,
那這個button註冊的事件在下面

private OnClickListener calcBMI = new OnClickListener() {
    @Override
    public void onClick(View v) {
    }
};

這是按鈕事件的基本架構,當使用者按下按鈕時,就會觸發OnClickListener類型的事件函式,這個範例的所有程式邏輯與運算內容,都會放在這個事件函式中。在使用時須先匯入OnClickListener類別

以下是按鈕事件的內容說明

EditText fieldheight = (EditText)findViewById(R.id.height);
EditText fieldweight = (EditText)findViewById(R.id.weight);
//身高
double height = Double.parseDouble(fieldheight.getText().toString())/100;
//體重
double weight = Double.parseDouble(fieldweight.getText().toString());
//計算出BMI值
double BMI = weight / (height*height);

取得編輯欄位物件,並取得運算結果

//結果
TextView result = (TextView)findViewById(R.id.result);
result.setText(getText(R.string.bmi_result)
+ nf.format(BMI));

//建議
TextView fieldsuggest = (TextView)findViewById(R.id.suggest);
if(BMI > 25) //太重了
    fieldsuggest.setText(R.string.advice_heavy);
else if(BMI < 20) //太輕了
    fieldsuggest.setText(R.string.advice_light);
else //剛剛好
    fieldsuggest.setText(R.string.advice_average);

將結果顯示出來

明天開始進入番外篇


上一篇
[Day 12] 我的第一個Android程式 - BMI程式設計(七) 終於完成基本功能
下一篇
[Day 14] 我的第一個Android程式 - BMI程式設計(九) 應用程式的重構
系列文
[Andriod] Andriod Studio 從入門到進入狀況33

尚未有邦友留言

立即登入留言