開始動手修改你的專案吧!
話先說在前頭
- 另外這是一篇筆記,不是一篇教學,所以我不會寫上所有的方式,我只會寫我用的方法。
- 本篇文章是參照[深入淺出 Android -- Google 手持設備應用程式設計入門]跟著做的,所以可能會省略一些說明,詳情請參閱原本的文章。
接下來我們依照gasolin的方向繼續前進吧!現在我們要為程式的畫面加上可以輸入身高體重的欄位。
- 首先,先把程式預設的TextView刪除吧!如圖所示!
- 刪除的時候會問你是不是要刪除[LinearLayout>TextView?],二話不說[Yes]給他按下去吧!
- 接著再畫面的左邊選取[TextView]把它拖曳到主畫面上吧!
- 然後選畫面的右手邊的[Properties]視窗,選[Text]屬性,然後右邊的按鈕給他按下去!記得要選到[TextView]的物件喔!
- 按下去後會出現[Resource Chooser]視窗,[New String...]再給他按下去吧!
- 按下去後會跳出一個[Create New Android String]的視窗,在[String]的後面輸入[身高:],[New R.string.]後面輸入[height],然後按下[OK]。按下[OK]之後就會跳回去剛剛的[Resource Chooser]視窗,這時候你會發現多了一個[height]可以選擇。
- 但是選完之後你應該會發現畫面上並沒有出現你預期的[身高:],這時候要去修改[Properties]的[Layout width],將他從[wrap_content]改成[fill_parent],改完之後記得點一下別的屬性,這樣才看的到你修改後的變化。
- 接下來依序擺上[TextEdit][TextView][TextEdit][Button][TextView]如圖,屬性如下。
- [TextEdit]
- Id:@+id/etHeight
- Input type:number
- Text:
- Layout width:fill_parent
- [TextView]
- Text:體重:
- Layout width:fill_parent
- [TextEdit]
- Id:@+id/etWeight
- Input type:number
- Text:
- Layout width:fill_parent
- [Button]
- Id:@+id/btnCalc
- Text:計算BMI值
- Layout width:fill_parent
- [TextView]
- Id:@+id/tvResult
- Text:
- Layout width:fill_parent
- [TextView]
- Id:@+id/tvSuggest
- Text:
- Layout width:fill_parent
接下來我們要先新增計算完BMI之後的建議。所以我們要先新增一個advice.xml在values下面。
- 在左邊的[Package Explorer]點滑鼠右鍵,如圖。
- 在[File]的地方輸入[advice.xml],然後按下[Finish]之後你就會在右邊的[Package Explorer]看到你新增的[advice.xml]了。
- 接下來選擇剛剛新增的[advice.xml],然後在畫面的中央選擇[Add...]。
- 直接在跳出來的視窗上面double click [String]。
- 之後你應該會看到畫面上的右邊有[Name*]跟[Value*]可以輸入,請輸入[advice_light]跟[你該多吃點]。
- 依序在新增[advice_avg/體型很棒喔]跟[advice_heavy/你該節食了],打完記得存檔喔。
接下來該寫些程式了,不過我已經在打哈欠、流眼淚了,所以直接把程式貼上吧!如果希望說明的,可以去gasolin大大的AndroidLogic跟BmiLogic看。
- package com.demo.android.bmi2;
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- import android.view.View;
- import android.view.View.OnClickListener;
- import java.text.DecimalFormat;
- public class Bmi2 extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //Listen for button clicks
- Button button = (Button)findViewById(R.id.btnCalc);
- button.setOnClickListener(calcBMI);
- }
- private OnClickListener calcBMI = new OnClickListener()
- {
- public void onClick(View v)
- {
- DecimalFormat nf = new DecimalFormat("0.00");
- EditText fieldHeight = (EditText)findViewById(R.id.etHeight);
- EditText fieldWeight = (EditText)findViewById(R.id.etWeight);
- double height = Double.parseDouble(fieldHeight.getText().toString())/100;
- double weight = Double.parseDouble(fieldWeight.getText().toString());
- double bmi = weight / (height * height);
- TextView result = (TextView)findViewById(R.id.tvResult);
- result.setText("Your BMI is " + nf.format(bmi));
- TextView fieldSuggest = (TextView)findViewById(R.id.tvSuggest);
- 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_avg);
- }
- }
- };
- }
沒有留言:
張貼留言