1. 程式人生 > >Android開發--身高體重指數(BIM)計算--完成BMI程式

Android開發--身高體重指數(BIM)計算--完成BMI程式

/* (程式頭部註釋開始)
* 程式的版權和版本宣告部分
* Copyright (c) 2011, 煙臺大學計算機學院學生
* All rights reserved.
* 檔名稱:修改表達使用者介面

* 作 者: 雷恆鑫
* 完成日期: 2012 年 08 月  7   日
* 版 本 號: V1.0
* 對任務及求解方法的描述部分
* 輸入描述:
* 問題描述:
* 程式輸出:

* 程式頭部的註釋結束

*/

以下是完整的BMI程式:

Bmi.java

package com.demo.android.bmi;

import java.text.DecimalFormat;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Bmi extends Activity {
	/**
	 * Called when the activity is first created.
	 * 
	 * @param <calcBMI>
	 */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		// Listen for button clicks
		Button button = (Button) findViewById(R.id.submit);
		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.height);
			EditText fieldweight = (EditText) findViewById(R.id.weight);
			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.result);
			result.setText("Your BMI is " + nf.format(BMI));

			// 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);
			}
		}
	};

}


main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"   
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/height"
    />
<EditText android:id="@+id/height"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:numeric="integer"
    android:text=""
    />
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/weight"
    />
<EditText android:id="@+id/weight"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:numeric="integer"
    android:text=""
    />
<Button android:id="@+id/submit"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/bmi_btn"
    />
<TextView  android:id="@+id/result"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text=""
    />
<TextView  android:id="@+id/suggest"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text=""
    />
</LinearLayout>


advice.xml

<?xml version="1.0" encoding="utf-8"?>
<resources> 
   <string name="advice_light">你該多吃點,身體是革命的本錢哈。</string>
   <string name="advice_average">體型很棒哦,繼續保持。</string>
   <string name="advice_heavy">你該節食了,呵呵。</string>
</resources>

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">BIM</string>
    <string name="height">身高(cm)</string>
    <string name="weight">體重(kg)</string>
    <string name="bmi_btn">計算 BMI 值</string>
    <string name="bmi_result">您的 BIM 值是:</string>
</resources>


執行結果:

經驗積累:

1.BMI應用程式的演算法和C++的演算法差不多。

2.我知道了運算的時候是如何呼叫系統函式的。

3.我學會了如何宣告一個Button實體。

相關推薦

Android開發--身高體重指數BIM計算--完成BMI程式

/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:修改表達使用者介面 * 作 者: 雷恆鑫 * 完成日期: 2012 年 08 月  

Android開發模板代碼——簡單打開圖庫選擇照片

image string code index targe contex 數字 vid equals 首先,先貼上樣本代碼 //檢查權限 public void checkPermission() { if (ContextCompat.c

Android開發————簡易APP設計

實驗內容 使用sqlite 給備忘錄app增加資料儲存功能 實驗步驟 活動1: Xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://sche

Android開發板串列埠SerialPort通訊

前言: 最近在總是看見有人在群裡面問一些串列埠通訊相關的問題,特別是對於我們這些做APP出生的程式設計師來說,初次接觸串列埠通訊的確是會遇到各種Bug,各種摸不著頭腦。串列埠通訊偏向嵌入式一點,是Android裝置通過串列埠與其他裝置進行通訊的一種方式,本文介紹的Andr

Android開發藝術探索筆記 Activity的生命週期和啟動模式(1)

Activity作為Android開發中最常用的一個元件,是Android開發人員必須熟悉且掌握的重要內容。同時Activity也是在面試中經常被問到的一個方向。因此,掌握Activity的重要性也不言而喻。這或許也是為什麼任大神會在《Android開發藝術探索

Android開發中屬性動畫ObjectAnimator中 插值器Time Interpolator 詳解

在 Android開發中,為了保持良好的互動體驗,我們經常會用到動畫來提升使用者體驗,而動畫中屬性動畫用的最多。 雖然動畫可以讓介面看起來不是那麼粗糙,但是很多時候僅僅只是勻速運動的動畫可能不足以描述一些我們想呈現給使用者的介面,比如模擬一個下落的小球,我們知道下落的小球並不是以勻速運動的,

Android開發中屬性動畫ObjectAnimator的應用

昨天看到一個有意思的動畫,就想用Android 中的屬性動畫(ObjectAnimator)給實現出來,順便複習一下屬性動畫的使用,完成效果如下: 看完了效果,現在該開始動手幹活了~ 首先先分析一下這個動畫用Android 中的屬性動畫該怎麼實現: 看上去這個動畫很簡單,可以用

Android開發--IM聊天專案

在知乎上看了一篇文章,感覺受益匪淺。認真迭代一個專案比盲目的多寫幾個app的收益會更大,還有就是認真的夯實基礎,拿offer面試的時候也會更注重基礎,還有半年的時間來準備,也就不打算再寫其它的專案了,部落格方面的話就不定期來寫寫最近的學習心得,還有這個專案的進展

Android開發之藍芽——基於SPP協議藍芽模組通訊

使用裝置 基本概念 基本流程 本文意在介紹藍芽開發的主要流程,學習使用藍芽開發一個星期了,寫寫一個星期以來遇到的一些小問題,還有介紹下流程。開發具有基本的通訊功能,本專案主要是用於與藍芽模組的串列埠讀寫功能。 下一篇文章還有Android開

Android GIS開發系列-- 入門季8 Json與Geometry的相互轉換

相互轉換 them 實用 興趣 parse 執行 pretty pre andro 在Android中json數據十分普遍,也很實用,在Arcgis中也同樣支持Json數據,Json與Geometry可以相互轉換,達到我們想要的數據。 一、Geometry轉換成Json數

Android GIS開發系列-- 入門季12 顯示載天地圖

nts down initial spatial 動態加載 static mapview internal nat 在項目中可以經常需要動態加載一些圖層,像投影地圖服務、投影地圖服務器。其實網上有大量這樣的服務,比如天地圖官網, 。 隨便點開一個服務,裏面有相關的信息。

Android GIS開發系列-- 入門季14FeatureLayer之範圍查詢

sso 偏差 .get http pri tex des else uil Android GIS開發系列-- 入門季(5),這篇文章中,我們知道如何去查找要素。現在有一個需求,查找某點5000米範圍的要素,那如何來做呢?首先我們需要在地圖上畫個5000米半徑的圓,然後根據

Android GIS開發系列-- 入門季13Gdal簡單寫個shp文件

ring map register enc 資源 ger 下載地址 不可用 tle Gdal是用來讀寫柵格與矢量數據的,在Gdal官網,可以下載相關的資源進行平臺的編譯。其實Arcgis底層也是用Gdal來讀取shp文件的,那在Android中可以直接讀寫shp文件嗎,是可

Android 項目開發基礎再回顧

android1,主activity_splash:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.andro

30款android開發高效必備工具附下載地址

工作高效是為了騰出更多個人時間。在android開發中,還真有些人氣小工具,能幫你快速解決問題,提高開發效率。 Vysor Vysor 是一個可以將手機的螢幕投影到電腦上,當然也可以操作,當我們做分享或者演示的時候,這個工具起到了作用。 Vector Asset And

Android開發——動畫使用篇章幀動畫,補間動畫

Android 動畫分為 view動畫,幀動畫,屬性動畫,本片文章是參考多篇動畫介紹部落格,總結動畫使用API,使用場景。適合日常開發 搬磚使用。 幀動畫 幀動畫是最容易實現的一種動畫,這種動畫更多的依賴於完善的UI資源,他的原理就是將一張張單獨的圖片連貫的進行播放,從而在視覺上

Android 開發小知識點收集隨時更新

1、獲取手機執行時最大可佔用記憶體 int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024); Log.d("TAG", "Max memory is " + maxMemory + "KB"); 2、改變dial

安卓開發實戰 大學班級APP開發 練手專案 Android Studio 自帶模板Bottom Navigation Activity 的使用

一、建立Bottom Navigation 使用Android Studio建立工程,在選擇activity的時候選擇Bottom Navigation Activity 之後 xml檔案 程式碼修改如下 <?xml version="1.0" encoding=

好東西Android開發人員不得不收集的程式碼

Awesome-MaterialDesign- MaterialDesignCenter改名為Awesome-MaterialDesign,優化了佈局,新增了不少庫。 ChipsLibrary- 在Android EditText中實現打Tag功能。

Android開發之顯示篇弄懂ppi、dpi、pt、px、dp、dip、sp之間的關係看這一篇就夠了

版權申明】非商業目的註明出處可自由轉載 博文地址:https://blog.csdn.net/ShuSheng0007/article/details/85165773 出自:shusheng007 文章目錄 概述 要解決的疑問 概念篇