BMI体质指数计算器

  • 一、学习提示
    • 1.1、项目目标:开发一款体质指数计算器,实现输入身高和体重即可判定体型是否正常。
    • 1.2、知识点:Activity;布局;Widget组件(EditText/Button/TextView);属性菜单;Intent。
    • 1.3、技能目标:能使用ADT可视化布局设计器设计基本的程序界面;在开发过程中建立重构项目代码的意识。
  • 二、项目
    • 2.1 、BMI界面设计
      • 相关组件:3个TextView,两个用来输入浮点小数的EditText,一个Button
    • 2.2、BMI功能实现
      • 2.2.1原理分析:Body Mass Index即“体质指数”,计算方法:体重除以身高的平方,其公式为:体质指数(BMI)=体重(kg)/(身高(m)*身高(m))。
      • 2.2.2实现代码
        • (1)成员变量定义,他们是程序界面上的控件/组件,需要在代码中用到
        • (2)在OnCreate()方法中设置当前Activity显示的界面,来自前面设计好的xml格式的布局文件
        • (3)找到OnCreate()方法中在setContentView()方法下加入初始化控件
        • (4)在OnCreate()方法中编写计算按钮的单击事件代码
    • 2.3、BMI重构

一、学习提示

1.1、项目目标:开发一款体质指数计算器,实现输入身高和体重即可判定体型是否正常。

1.2、知识点:Activity;布局;Widget组件(EditText/Button/TextView);属性菜单;Intent。

1.3、技能目标:能使用ADT可视化布局设计器设计基本的程序界面;在开发过程中建立重构项目代码的意识。

二、项目

2.1 、BMI界面设计

相关组件:3个TextView,两个用来输入浮点小数的EditText,一个Button

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignTop="@+id/editHeight"android:layout_marginLeft="16dp"android:text="身高(cm)" /><TextViewandroid:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_alignRight="@+id/textView1"android:layout_marginTop="16dp"android:text="体重(KG)" /><EditTextandroid:id="@+id/editWeight"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/button"android:layout_alignTop="@+id/textView2"android:ems="10"android:inputType="numberDecimal" /><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_below="@+id/editHeight"android:layout_marginTop="30dp"android:text="速速算出小美女的体质指数来" /><EditTextandroid:id="@+id/editResult"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/button"android:layout_below="@+id/button"android:layout_marginTop="82dp"android:ems="10"android:inputType="numberDecimal" /><TextViewandroid:id="@+id/textView3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBottom="@+id/editResult"android:layout_alignLeft="@+id/editResult"android:layout_marginBottom="49dp"android:text="鉴定结果" /><EditTextandroid:id="@+id/editHeight"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/editWeight"android:layout_below="@+id/editWeight"android:layout_marginTop="22dp"android:ems="10"android:inputType="numberDecimal" /></RelativeLayout>

2.2、BMI功能实现

2.2.1原理分析:Body Mass Index即“体质指数”,计算方法:体重除以身高的平方,其公式为:体质指数(BMI)=体重(kg)/(身高(m)*身高(m))。

2.2.2实现代码

(1)成员变量定义,他们是程序界面上的控件/组件,需要在代码中用到

//身高输入框,体重输入框,计算按钮,体型显示结果private EditText editHeight;private EditText editWeight;private Button bthCalc;private TextView textResult;

(2)在OnCreate()方法中设置当前Activity显示的界面,来自前面设计好的xml格式的布局文件

setContentView(R.layout.activity_main);

(3)找到OnCreate()方法中在setContentView()方法下加入初始化控件

editHeight=(EditText) findViewById(R.id.editHeight);editWeight=(EditText) findViewById(R.id.editWeight);bthCalc=(Button) findViewById(R.id.button);textResult=(TextView) findViewById(R.id.editResult);

(4)在OnCreate()方法中编写计算按钮的单击事件代码

//响应按钮事件bthCalc.setOnClickListener(new OnClickListener(){        @Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubtry{double h=Double.parseDouble(editHeight.getText().toString())/100;double w=Double.parseDouble(editWeight.getText().toString());//计算BIMdouble bmi=w/(h*h);if(bmi>18.5){textResult.setText("你的体型偏瘦,需要多吃点");}else if(bmi>24.9){textResult.setText("你的体型偏胖,需要少吃点");}else{textResult.setText("你的体型不错哟,继续保持");}}catch(Exception e){Toast.makeText(MainActivity.this, "提示:输入有误", Toast.LENGTH_SHORT).show();}}});

2.3、BMI重构

发现:在设计界面上每个控件上会显示一个黄色的感叹号小图标,或者在xml布局文件中将鼠标移至黄色波浪线也会有黄色的提示信息。
问题:不应该在界面布局文件中“硬编码字符串”,也就是不应该使用字符串常量,而应该使用字符串资源,也是为了将来程序的“国际化”考虑的。
解决:对BMI项目进行重构,重构的目的:把硬编码的文字内容转移到Android资源中去

Android小项目---BIM体质指数计算器相关推荐

  1. 用android做体质计算器,Android入门项目(一):BMI体质指数计算器

    目标:开发一款体质指数计算器,实现输入身高体重即可判断体型是否正常 知识点:Activity:布局:基本组件的使用 BMI是体质指数,公认的一种评定个人体质肥胖程度的分级方法,具体的计算方法是以体重除 ...

  2. Android入门项目(一):BMI体质指数计算器

    目标:开发一款体质指数计算器,实现输入身高体重即可判断体型是否正常 知识点:Activity:布局:基本组件的使用 BMI是体质指数,公认的一种评定个人体质肥胖程度的分级方法,具体的计算方法是以体重除 ...

  3. Android入门项目:关于BMI体质指数计算器

    目标:开发一款BMI体质指数计算器.用户在主界面中输入身高和体重,单击"计算BMI值"按钮后,在界面二通过TextView显示相应的结论:界面二点击返回能够回到主界面. 体质指数与 ...

  4. Android小项目———— 冰炭不投de小计算器

    我的第一个Android小项目 冰炭不投de小计算器 一.前言 这是我首个使用java写的app,也在学习郭霖老师的第一行代码和李刚老师的疯狂java讲义之时,进行的练习之作,刚刚学习java和and ...

  5. Android小项目————聊天室(UI篇)

    Android小项目----聊天室(UI篇) 一.前言 这是所做的第二个android项目,主要目的对暑假所学的java和android知识点进行复习巩固和实践,由于知识所限,目前这个聊天室并不是很完 ...

  6. Android 小项目之--数据存储【Files】(附源码)

    继上篇数据存储,现在我们来讲讲另外一种数据存储,Files.本篇讲述步骤如下: 1.温故而知新,复习四种数据存储的区别. 2.什么是 Files 数据存储. 3.什么是 Properties ? 4. ...

  7. linux 蓝牙 手机遥控器,嵌入式Android小项目之万能手机遥控器详解

    原标题:嵌入式Android小项目之万能手机遥控器详解 在很久很久以前,手机是有红外功能的,后来随着蓝牙技术的成熟,红外逐渐被蓝牙取代,不再是标配了. 红外本身还是有些优点,比如操作简便,成本低.要想 ...

  8. Android小项目——简易备忘录

    Android小项目--简易备忘录的实现 简易备忘录主要实现功能类似手机默认备忘录,可以对备忘录目录进行增添和删除.在编辑页面,可以显示当前时间,编辑备忘录标题,备忘录内容,设置时间提醒,插入图片等 ...

  9. 一个特别适合新手练习的Android小项目——每日一妹纸

    原文链接 http://sparkyuan.me/ 转载请注明出处 介绍 当前版本V 1.2 刚开始学习Android的时候,主要就是学习了一些Activity的生命周期,各种View和Layout的 ...

最新文章

  1. 利用JS提交表单的几种方法和验证
  2. 渴望尽快能找到工作,开始上班
  3. MySQL怎么存base64编码_MySQL中如何将字符串转为base64编码?
  4. 【bfs】Replication G(P7151)
  5. 图像二维离散傅里叶变换、幅度谱、相位谱
  6. native2ascii命令
  7. 霓虹促销电商设计,购买欲冲击视觉
  8. 阿里披露 AI 完整布局,飞天 AI 平台首次亮相!
  9. 一步一步学Repast 第五章——模拟粒子运动,了解Schedule
  10. 简单的POST sql注入
  11. 加密狗工作原理和破解方法简介
  12. 实验二:递归下降语法分析
  13. 【语义分割专题】语义分割相关工作--SegNet
  14. 基于栈的字节码解释执行引擎图解
  15. 【实用性程序】弧微分计算圆周长
  16. Hadoop系列之MapReduce 数据本地化 (29)
  17. 2019 谷歌dat.GUI组件对中文的支持
  18. Android只播放gif动画
  19. 单片机2017福建省中职省赛_我院学子在2017年福建省合泰杯单片机应用设计竞赛中再获佳绩...
  20. 关闭Excel2016的动画效果

热门文章

  1. 诺基亚6303c格式设置
  2. 程序员如何爱护自己的眼睛
  3. java 接口鉴权_安全|Java中使用JWT生成Token进行接口鉴权实现
  4. 学生HTML个人网页作业作品下载 HTML5+CSS大作业——个人网页(4页)
  5. LINUX 路由子系统流程分析
  6. 2022年HarmonyOS/OpenHarmony生态观察
  7. 遭遇EBUIITI.SYS,QBNLWVQCIMQBOS.DLL,JSRLDZLVYUNXEO.DLL,JSRLDZLVYUNXEO.DLL等
  8. html+css 微信界面(续一之html)
  9. Delphi Class of
  10. 微软(中国)等碳排放超标企业被处罚