編輯:開發入門
至此,我們已經完成了 bmi 程序的界面設計,並且理解了了新建立的程序。剩下我們要做的,只剩下為 BMI 程序加上程序邏輯。
很幸運的是, BMI 程序中用到的並不是什麼神秘的演算法,你甚至可以透過搜尋引擎找到中文的范例。
完整的程序如下:
代碼 :
1 package com.demo.android.bmi;
2
3 import Java.text.DecimalFormat;
4
5 import android.app.Activity;
6 import android.os.Bundle;
7 import android.view.VIEw;
8 import android.view.VIEw.OnClickListener;
9 import android.widget.Button;
10 import android.widget.EditText;
11 import android.widget.TextVIEw;
12
13 public class Bmi extends Activity {
14 /** Called when the activity is first created. */
15 @Override
16 public void onCreate(Bundle savedInstanceState) {
17 super.onCreate(savedInstanceState);
18 setContentVIEw(R.layout.main);
19
20 //Listen for button clicks
21 Button button = (Button)findVIEwById(R.id.submit);
22 button.setOnClickListener(calcBMI);
23 }
24
25 private OnClickListener calcBMI = new OnClickListener()
26 {
27 public void onClick(VIEw v)
28 {
29 DecimalFormat nf = new DecimalFormat("0.00");
30 EditText fieldheight = (EditText)findVIEwById(R.id.height);
31 EditText fieldweight = (EditText)findVIEwById(R.id.weight);
32 double height = Double.parseDouble(fIEldheight.getText().toString())/100;
33 double weight = Double.parseDouble(fIEldweight.getText().toString());
34 double BMI = weight / (height * height);
35
36 TextView result = (TextView)findVIEwById(R.id.result);
37 result.setText("Your BMI is "+nf.format(BMI));
38
39 //Give health advice
40 TextView fieldsuggest = (TextView)findVIEwById(R.id.suggest);
41 if(BMI>25){
42 fIEldsuggest.setText(R.string.advice_heavy);
43 }else if(BMI<20){
44 fIEldsuggest.setText(R.string.advice_light);
45 }else{
46 fIEldsuggest.setText(R.string.advice_average);
47 }
48 }
49 };
50 }
我們會學到:導入其他用到的模組、如何取得界面元件、如何對按鈕設定動作。
從上面的完整程序中,我們看到上面介紹到的程序主體都還在,不過也增加了一些內容。這些內容即我們的主要程序邏輯。
講解
//Listen for button clicks
兩個反斜線是 Java 語言所支援的另一種注解方式。
按鈕
代碼 :
Button button = (Button)findVIEwById(R.id.submit);
宣告一個 button 實體,透過 findVIEwById 方法,從資源檔中取得對應的界面元件 ( 按鈕 ) 。這邊取出的是 "R.id.submit" 按鈕元件。
"R.id.submit" 對應到 XML 描述檔的資源是
代碼 :
<Button id="@+id/submit"/>
為了確保宣告的型別跟 XML 描述檔中描述的界面元件型別一致,好使程序運作正常,我們在 "findVIEwById" 方法前加上 "(Button)" 修飾,強制將取得的資源型別設成 "button" 型別。
代碼 :
button.setOnClickListener(new OnClickListener(){});
這句包含了 " button.setOnClickListener" 與其中的 "OnClickListener" 兩個類別。 "setOnClickListener" 是 button (按鈕)實體的方法。
編輯欄位
代碼 :
EditText fieldheight = (EditText)findVIEwById(R.id.height);
EditText fieldweight = (EditText)findVIEwById(R.id.weight);
與上面 button 的宣告類似,只是改成宣告 EditText 實體,透過 findVIEwById 方法,從資源檔中取得對應的文字欄位元件。這邊取出的是 "R.id.height" 和 "R.id.weight" 文字欄位元件。
運算
代碼 :
double height = Double.parseDouble(fIEldheight.getText().toString())/100;
double weight = Double.parseDouble(fIEldweight.getText().toString());
double BMI = weight / (height * height);
BMI 值的算法是 " 體重除以身高的平方 " 。 用計算式來表示,就是
體重 (weight) / 身高 (height)* 身高 (height)
這麽看來,上面的程序碼就很清晰了。我們先從身高欄位 (fieldheight) 、體重欄位 (fIEldweight) 中取得使用者輸入的身高體重數字,再 定義一個雙倍精度幅點數 (double) 型態的變數 BMI 來儲存運算的結果,因此, BMI 變數中儲存了運算出來的實際 BMI 值。
顯示結果
我們把 BMI 值運算出來了,接著要將結果顯示回屏幕上。
代碼 :
TextView result = (TextView)findVIEwById(R.id.result);
為了將結果顯示到屏幕上,在之前 XML 定義檔中我們已經預留了一個名為 "result" 的 TextView 欄位。在程序碼中,我們再宣告一個 TextView 實體,透過 findVIEwById 方法,從資源檔中取得對應的界面元件 ( 文字顯示 ) 。這邊取出的就是 "R.id.result" 界面元件。
代碼 :
DecimalFormat nf = new DecimalFormat("0.00");
result.setText("Your BMI is "+nf.format(BMI));
透過 Java 內建的 DecimalFormat 函式,我們可以將運算結果,以適當的格式顯示。透過 "setText" 方法,我們可以將指定的字串,顯示在屏幕上文字類型的界面元件中。
顯示建議
" 顯示建議 " 的方式與 " 顯示結果 " 完全相同,只有多加了幾個 "if" 判斷式:當 BMI 值大於 25 顯示過重,小於 20 顯示過輕。程序碼留給讀者自習。
代碼 :
//Give health advice
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);
}
完整的 BMI 程序動作流程,就是使用者在身高體重欄位中輸入好身高體重後,按下 " 計算 BMI 值 " 按鈕,程序根據識別符號,從對應的身高體重欄位讀取輸入的值,並做計算,最後將計算的結果與建議顯示到屏幕上。
簡介黑莓和 iPhone 都提供了受歡迎的、高容量的移動平台,但是卻分別針對兩個不同的消費群體。黑莓是企業業務用戶的不二選擇。但是,作為一種消費設備,它在易用性和 “新
簡介: 這是由兩部分組成的 Android 動畫框架詳解的第二部分實例篇。在閱讀本篇之前,建議您首先閱讀本系列的第一部分 Android 動畫框架詳解之原理篇
作為開發者,你的第一感覺是你拿到這個開發框架寫“Hello, World!”程序時的難易程度給你留下的。 當然,在android裡,這個非常容易,下面我給你演
連接 JavaScript 接口下一步是啟用 Activity 中的 Java 代碼,以與 WebVIEw 管理的 Html 文件中的 JavaScript 代碼交互。