Android小项目---BIM体质指数计算器
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体质指数计算器相关推荐
- 用android做体质计算器,Android入门项目(一):BMI体质指数计算器
目标:开发一款体质指数计算器,实现输入身高体重即可判断体型是否正常 知识点:Activity:布局:基本组件的使用 BMI是体质指数,公认的一种评定个人体质肥胖程度的分级方法,具体的计算方法是以体重除 ...
- Android入门项目(一):BMI体质指数计算器
目标:开发一款体质指数计算器,实现输入身高体重即可判断体型是否正常 知识点:Activity:布局:基本组件的使用 BMI是体质指数,公认的一种评定个人体质肥胖程度的分级方法,具体的计算方法是以体重除 ...
- Android入门项目:关于BMI体质指数计算器
目标:开发一款BMI体质指数计算器.用户在主界面中输入身高和体重,单击"计算BMI值"按钮后,在界面二通过TextView显示相应的结论:界面二点击返回能够回到主界面. 体质指数与 ...
- Android小项目———— 冰炭不投de小计算器
我的第一个Android小项目 冰炭不投de小计算器 一.前言 这是我首个使用java写的app,也在学习郭霖老师的第一行代码和李刚老师的疯狂java讲义之时,进行的练习之作,刚刚学习java和and ...
- Android小项目————聊天室(UI篇)
Android小项目----聊天室(UI篇) 一.前言 这是所做的第二个android项目,主要目的对暑假所学的java和android知识点进行复习巩固和实践,由于知识所限,目前这个聊天室并不是很完 ...
- Android 小项目之--数据存储【Files】(附源码)
继上篇数据存储,现在我们来讲讲另外一种数据存储,Files.本篇讲述步骤如下: 1.温故而知新,复习四种数据存储的区别. 2.什么是 Files 数据存储. 3.什么是 Properties ? 4. ...
- linux 蓝牙 手机遥控器,嵌入式Android小项目之万能手机遥控器详解
原标题:嵌入式Android小项目之万能手机遥控器详解 在很久很久以前,手机是有红外功能的,后来随着蓝牙技术的成熟,红外逐渐被蓝牙取代,不再是标配了. 红外本身还是有些优点,比如操作简便,成本低.要想 ...
- Android小项目——简易备忘录
Android小项目--简易备忘录的实现 简易备忘录主要实现功能类似手机默认备忘录,可以对备忘录目录进行增添和删除.在编辑页面,可以显示当前时间,编辑备忘录标题,备忘录内容,设置时间提醒,插入图片等 ...
- 一个特别适合新手练习的Android小项目——每日一妹纸
原文链接 http://sparkyuan.me/ 转载请注明出处 介绍 当前版本V 1.2 刚开始学习Android的时候,主要就是学习了一些Activity的生命周期,各种View和Layout的 ...
最新文章
- 利用JS提交表单的几种方法和验证
- 渴望尽快能找到工作,开始上班
- MySQL怎么存base64编码_MySQL中如何将字符串转为base64编码?
- 【bfs】Replication G(P7151)
- 图像二维离散傅里叶变换、幅度谱、相位谱
- native2ascii命令
- 霓虹促销电商设计,购买欲冲击视觉
- 阿里披露 AI 完整布局,飞天 AI 平台首次亮相!
- 一步一步学Repast 第五章——模拟粒子运动,了解Schedule
- 简单的POST sql注入
- 加密狗工作原理和破解方法简介
- 实验二:递归下降语法分析
- 【语义分割专题】语义分割相关工作--SegNet
- 基于栈的字节码解释执行引擎图解
- 【实用性程序】弧微分计算圆周长
- Hadoop系列之MapReduce 数据本地化 (29)
- 2019 谷歌dat.GUI组件对中文的支持
- Android只播放gif动画
- 单片机2017福建省中职省赛_我院学子在2017年福建省合泰杯单片机应用设计竞赛中再获佳绩...
- 关闭Excel2016的动画效果
热门文章
- 诺基亚6303c格式设置
- 程序员如何爱护自己的眼睛
- java 接口鉴权_安全|Java中使用JWT生成Token进行接口鉴权实现
- 学生HTML个人网页作业作品下载 HTML5+CSS大作业——个人网页(4页)
- LINUX 路由子系统流程分析
- 2022年HarmonyOS/OpenHarmony生态观察
- 遭遇EBUIITI.SYS,QBNLWVQCIMQBOS.DLL,JSRLDZLVYUNXEO.DLL,JSRLDZLVYUNXEO.DLL等
- html+css 微信界面(续一之html)
- Delphi Class of
- 微软(中国)等碳排放超标企业被处罚