999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Android入門程序開發—BMI計算器

2018-01-06 01:06:24董明華李宏偉
電腦知識與技術 2017年35期
關鍵詞:按鈕方法

董明華+李宏偉

摘要:AndroidStudio已經代替了Eclipse,成為Android官方集成開發工具。文章基于AndroidStudio設計了一款身高體重計算器,通過介紹常見布局控件的用法,使初學者能夠快速入門Android APP開發,了解APP界面設計,用戶輸入值的獲取等知識。

關鍵詞:AndroidStudio;BMI;APP

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)35-0136-03

1 背景

BMI指數,即身體質量指數,是用體重公斤數除以身高米數平方得出的數字,是目前國際上常用的衡量人體胖瘦程度以及是否健康的一個標準。體質指數(BMI)=體重(kg)÷身高^2(m)。文章根據BMI指數開發一款簡易身高體重計算器,通過分析用戶的身高體重值,判斷其身材是否標準。

2 APP展示

最終APP效果如圖1所示,用戶輸入身高體重值后,通過單擊計算按鈕,可得出身體胖瘦程度的一個提示。

3 知識點分析

項目涉及知識點較為簡單,界面布局為LinearLayout,控件為EditText和Button,java源代碼部分主要是控件的初始化,取得文本輸入框的輸入值,并轉換為數值類型,然后計算出BMI指數值,并通過Toast給出提示。

4 界面設計

界面從上向下依次為身高輸入框、體重輸入框和按鈕,輸入框對應Android中的EditText控件,按鈕對應Button控件,垂直排列的布局適合用線性布局LinearLayout。布局主要作用是設置控件在屏幕上的位置,線性布局LinearLayout可以讓其中的控件水平排列或者垂直排列。

首先,在res/layout文件夾中找到自動生成的布局文件activity_main.xml。在此文件中聲明父布局LinearLayout的排版方向為垂直排列,通過設置android:orientation的屬性值為vertical實現。

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

其次,設置文本輸入框EditText的寬填滿父布局,高自適應,并通過android:hint屬性設置提示語,提示語定義在res/values/strings.xml文件中。

android:id="@+id/height"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="@string/heighthint"/>

strings.xml中提示語定義格式如下所示,提示語內容需要根據項目要求設置,BMI指數對應體重單位kg,身高單位m。

BMI

請輸入您的身高,單位:m

請輸入您的體重,單位:kg

最后,完成計算按鈕部分。按鈕有兩個屬性需要設置,一是設置按鈕水平居中的屬性android:layout_gravity,屬性值為center_horizontal;二是注冊按鈕事件監聽屬性android:onClick,屬性值由開發人員自定義一個方法名。假設自定義的方法名為compute,那么在對應的java源文件中必須自定義一個如下形式的方法:

public void compute(View view){...}

5 java源代碼實現

創建BMI對應Module的時候,自動在src文件夾中生成MainActivity.java源文件,并實現Activity的onCreate生命周期方法。

在BMI項目中,java源代碼主要工作包括初始化文本輸入框控件,實現按鈕事件監聽器注冊方法,獲取文本輸入框的輸入值并轉換為數值類型,計算BMI指數并給出提示等,下面對這些功能依次進行講解。

5.1 初始化EditText

首先,在MainActivity中聲明EditText成員變量。

EditText heightEditText,weightEditText;

然后,在onCreate方法中通過findViewById方法初始化控件。

heightEditText = (EditText) findViewById(R.id.height);

weightEditText = (EditText) findViewById(R.id.weight);

其中,R.id.height表示身高輸入框的id是height,這是由布局文件中的id值決定的,android:id="@+id/height"。

需要注意的是,控件的初始化需要在setContentView(R.layout.XXX)之后,setContentView方法指定當前java源文件對應的布局文件,只有在指定的布局文件中存在某個控件,已知此控件的id值,才可以通過上述方法進行初始化工作。

5.2 Button事件監聽器處理方法

按鈕的事件監聽器注冊有多種處理方法,如果布局文件中已經通過android:onClick="compute"指定了當前按鈕的事件監聽器處理方法,則在對應的java源代碼文件中必須實現此方法。具體實現方式為定義一個方法,方法名必須和android:onClick的屬性值一致,方法修飾符必須是public,返回值是void,形參只有一個View類型。

public void compute(View view){...}

定義了上述方法后,只要用戶單擊了按鈕,就會回調此方法。

5.3 獲取EditText輸入值

獲取EditText輸入值必須在EditText初始化之后,同時注意獲取時機,本項目在用戶單擊計算按鈕的時候才獲取輸入值。下面以獲取用戶身高值為例,講解其獲取步驟,獲取體重值采用同樣的步驟。

1) 調用EditText對象的getText()方法獲取Editable對象。

Editable editable = heightEditText.getText();

2) 把Editable對象轉換為字符串類型。

heightString = editable.toString();

上述兩步操作經常合為一步執行。

heightString = heightEditText.getText().toString();

3) 根據項目要求把字符串轉換為其他數據類型,本項目設置成double數據類型,通過調用包裝類的parseXXX方法把字符串轉換為基本數據類型。

double heightDouble = Double.parseDouble(heightString);

5.4 計算BMI指數

獲取到用戶輸入的身高體重值后,就可以計算BMI指數值了。BMI指數值為體重除以身高的平方,需要注意體重單位kg,身高單位m。為了計算的方便,設置BMI值小于18.5時,表示體型偏瘦,大于23.9時偏胖,在兩者之間表示體型標準。

double result = heightDouble/(weightDouble*weightDouble);

if (result > 23.9){

消息提示

} else if(result < 18.5){

消息提示

} else {

消息提示

}

5.5 消息提示

Toast是Android中用來顯示信息的一種機制,主要用于向用戶顯示提示消息。和Dialog不一樣的是,Toast是沒有焦點的,而且Toast顯示的時間有限,過一定的時間就會自動消失。

Toast的創建步驟如下所述:

1) 調用靜態方法makeText創建Toast對象。

Toast toast = Toast.makeText(Context context, CharSequence text, int duration);

方法接收三個形參。第一個參數Context表示消息提示在哪個Activity中,一般用this表明在當前Activity中;第二個參數CharSequence代表提示語內容,接收字符串數據類型;第三個參數int表示消息顯示時長,系統提供了兩個值,Toast.LENGTH_SHORT和Toast.LENGTH_LONG,分別表示短時間顯示和長時間顯示。

2) 調用Toast對象的show方法顯示消息。

toast.show();

以上兩個步驟經常合成一步。

Toast.makeText(this,text,Toast.LENGTH_SHORT).show();

6 代碼優化

6.1 控件初始化優化

本項目比較簡單,控件只有兩個EditText需要初始化,直接在onCreate方法中操作也顯得清晰。如果控件的初始化操作較多,onCreate方法就會顯得臃腫,此時建議自定義初始化控件方法,在onCreate中調用自定義方法。

private void initViews() {

heightEditText = (EditText) findViewById(R.id.height);

weightEditText = (EditText) findViewById(R.id.weight);

……}

6.2 消息顯示優化

上述計算BMI指數中,要寫三次Toast提示代碼,而常用的BMI指數分為五六種情形,有沒有一種方式可以簡化消息顯示代碼呢?分析Toast提示代碼,除了提示語不同外,其他代碼完全相同,因而可以把消息顯示代碼封裝為一個方法,接收一個消息提示語參數。

public void show(String text){

Toast.makeText(this,text,Toast.LENGTH_SHORT).show();}

需要用到消息顯示的時候,調用show方法,傳入一個提示語即可。

6.3 BMI數值計算優化

按鈕監聽方法中大量代碼被用來求解BMI數值,可以把這部分代碼封裝到一個單獨的方法中,用來計算BMI數值。

public double getBMI(){

heightString = heightEditText.getText().toString();

weightString = weightEditText.getText().toString();

heightDouble = Double.parseDouble(heightString);

weightDouble = Double.parseDouble(weightString);

result = heightDouble/(weightDouble*weightDouble);

return result;}

7 結束語

APP的開發主要分為界面設計和java源代碼實現兩個部分,采用的是MVC設計模式。應用開發完成后,需要通過測試發現bug并加以改正。只有經過大量的開發實戰,才可以快速發現bug并改正。

參考文獻:

[1] 劉劍橋. 基于Android的房貸計算器開發與測試[J]. 電腦編程技巧與維護, 2016(5).

[2] 吳立勇, 丁作文. 基于Android系統的手機計算器的設計與實現[J]. 電子技術, 2014(4).

[3] 劉正. Android項目驅動式開發教程[M]. 北京: 機械工業出版社, 2014.

猜你喜歡
按鈕方法
哪個是門鈴真正的按鈕
當你面前有個按鈕
門鈴按鈕
學習方法
死循環
可能是方法不對
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 国产精品主播| 99热亚洲精品6码| 国产亚洲精品自在线| 四虎免费视频网站| 真实国产乱子伦视频| 亚洲精品少妇熟女| 日本成人在线不卡视频| 99热最新网址| 亚洲第一国产综合| 国内精品久久久久鸭| 天堂av高清一区二区三区| 亚洲性日韩精品一区二区| 亚洲一区二区三区在线视频| 9久久伊人精品综合| 国产不卡网| 国产乱子伦手机在线| 久久久久青草大香线综合精品| 国产内射一区亚洲| www.国产福利| 午夜一级做a爰片久久毛片| 欲色天天综合网| 99久久国产自偷自偷免费一区| 精品国产美女福到在线不卡f| 国产无码高清视频不卡| 在线免费看片a| 国产精品55夜色66夜色| 成年网址网站在线观看| 亚洲中文字幕久久精品无码一区| 久久精品嫩草研究院| 久久综合伊人 六十路| 操美女免费网站| 99热6这里只有精品| 六月婷婷精品视频在线观看 | 亚洲视频欧美不卡| 综1合AV在线播放| 99爱在线| 大学生久久香蕉国产线观看 | 国产成+人+综合+亚洲欧美| 国产在线视频福利资源站| 强奷白丝美女在线观看| 国产成人久视频免费| 四虎影视库国产精品一区| 成人综合网址| 国产美女无遮挡免费视频| 91在线日韩在线播放| 久久人搡人人玩人妻精品| 色偷偷av男人的天堂不卡| 九色国产在线| 亚洲综合18p| 国产成人AV大片大片在线播放 | 小13箩利洗澡无码视频免费网站| 久久综合色视频| 97色伦色在线综合视频| 国产自视频| 少妇精品网站| 亚洲天堂免费观看| 天天综合网亚洲网站| 青草视频网站在线观看| 99精品热视频这里只有精品7| 亚洲VA中文字幕| 国产欧美日韩视频怡春院| 久久国产拍爱| 精品久久久久成人码免费动漫| 免费无码网站| 日韩午夜伦| 婷婷亚洲天堂| 亚洲国产日韩一区| 欧美人人干| 99精品视频九九精品| 欧美a在线看| 国产第二十一页| 日韩视频福利| 国产xx在线观看| 日本91视频| 黄色在线不卡| 色婷婷在线影院| 高清不卡一区二区三区香蕉| 欧美一级在线播放| 国产一区二区精品福利| 亚洲精品自在线拍| 国产一区二区三区在线观看免费| 99尹人香蕉国产免费天天拍|