根据《深入浅出Android》中的例子,简单熟悉Android的开发,对原书中的实例加以简单扩展。

该程序是用于计算体重指数(BMI)的,"体重指数"是用来衡量人体体重是否正常(正常还是或胖或瘦)的一种计算方法,这种方法将人的体重和身高作为主要的计算依据。

程序主要涉及到Activity,Toast,Menu,Button,AlertDialog,TextView,EditView,RadioButton,RadioGroup等简单控件及SharedPreferences的使用的相关知识。

程序主界面截图如下:

主界面layout文件如下:

在layout中定义好的控件通过findViewById方法查找到,再设置好相应的setOnClickListener处理点击操作即可。

点击“说明”,通过startActivity方法弹出说明界面,如下图所示:

layout文件如下:

点击“关于”时,用AlertDialog弹出关于信息,当然也可以用Toast提示信息,代码如下:

private voidAboutAuthor() {

newAlertDialog.Builder(BMIActivity.this)

.setCancelable(true)

.setTitle(R.string.contactTitle)

.setMessage(R.string.contact)

.setPositiveButton(R.string.btnSure,

newDialogInterface.OnClickListener() {

@Override

public voidonClick(DialogInterface arg0,intarg1) {

//TODO Auto-generated method stubarg0.cancel();

}

}).show();

//Toast.makeText(this, R.string.contact, Toast.LENGTH_SHORT).show();}

点击“退出”时,用AlertDialog弹出确认操作信息,代码如下:

private voidCloseMethod() {

newAlertDialog.Builder(BMIActivity.this)

.setTitle(R.string.exitNotice)

.setCancelable(false)

.setMessage(R.string.exitAsk)

.setNegativeButton(R.string.btnReturn,

newDialogInterface.OnClickListener() {

@Override

public voidonClick(DialogInterface arg0,intarg1) {

//TODO Auto-generated method stubarg0.cancel();

}

})

.setPositiveButton(R.string.btnSure,

newDialogInterface.OnClickListener() {

@Override

public voidonClick(DialogInterface arg0,intarg1) {

//TODO Auto-generated method stubfinish();

}

}).show();

}

通过重载onCreateOptionsMenu方法添加菜单,代码如下:

@Override

public booleanonCreateOptionsMenu(Menu menu) {

//TODO Auto-generated method stub        super.onCreateOptionsMenu(menu);

menu.add(0, menuAbout, 0, "关于……");

menu.add(0, menuExit, 0, "退出……");

return true;

}

通过重载onOptionsItemSelected响应菜单操作,代码如下:

@Override

public booleanonOptionsItemSelected(MenuItem item) {

//TODO Auto-generated method stub        super.onOptionsItemSelected(item);

switch(item.getItemId()) {

casemenuAbout:

AboutAuthor();

break;

casemenuExit:

CloseMethod();

break;

default:

break;

}

return true;

}

因为自己的身高一般不常改变,要想在程序关闭后再次打开时,不需要再重复输入身高信息,那么就需要将身高信息保存起来。Android中可以用SharedPreferences来方便保存数据。SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data//shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下:

一、根据Context获取SharedPreferences对象

二、利用edit()方法获取Editor对象。

三、通过Editor对象存储key-value键值对数据。

四、通过commit()方法提交数据。

本程序中通过重载onStop方法在程序退出时来保存身高数据,代码如下:

@Override

protectedvoidonStop() {

//TODO Auto-generated method stub        super.onStop();

SharedPreferences pre = getSharedPreferences(PREF, 0);

pre.edit().putString(PREF_HEIGHT, tvHeight.getText().toString())

.commit();

}

可以看到/data/data//shared_prefs目录下生成一个名为:BMIPREF.xml的文件,如下图所示:

BMIPREF.xml文件内容为:

170

程序再次打开时,读取身高数据并通过EditText的setText方法将身高设置到输入框中,代码如下:

privatevoidReadPreference() {

SharedPreferences pre = getSharedPreferences(PREF, 0);

String height = pre.getString(PREF_HEIGHT, "");

if(!"".equals(height)) {

tvHeight.setText(height);

tvWeight.requestFocus();

}

}

另外,程序的图标可以在AndroidManifest.xml中application节点的android:icon属性进行设置,如下所示:

package="waterfrost.com.bmi"

android:versionCode="1"

android:versionName="1.0">

其中“@drawable/bmi”为程序自定义的图标文件。

下一篇:Android手机上简单的自动重复拨号小软件

这个东东在春节电话订票时能够很好派上用场。

java体重指数计算器程序_Android首接触--小程序(体重指数计算器)相关推荐

  1. Java 初学者做的第一个微信小程序--关于Java基础

    为什么 学习 Java 三年,目前已经工作了2年,因为自学,基础差,所以打算年末总结一下常见的基础知识和面试点: 也可以通过独立做一个项目整合自己工作期间学习的知识,加深印象. 但是想着回家或是平时手 ...

  2. Java后台开发Tomcat添加https支持小程序开发过程

    文章原文:blog.ouyangsihai.cn >> Java后台开发Tomcat添加https支持小程序开发过程 1 给自己的域名申请证书 注意:申请好了如果不是在腾讯注册的域名,不会 ...

  3. Java课程设计基于ssm的微信小程序

    Java课程设计, 基于ssm的微信小程序 后端涉及技术spring.mysql等 效果查看请扫一扫 喜欢可以点赞哟

  4. Java Web项目,Android和微信小程序的初始页面配置

    Java Web项目 我们在Eclipse里开了Java Web项目之后,Run As Tomcat或者Apache服务器,本地运行,如果直接用http://localhost:8080访问项目,会发 ...

  5. java计算机毕业设计信用卡增值业务系统小程序用户端源码+mysql数据库+lw文档+系统+调试部署

    java计算机毕业设计信用卡增值业务系统小程序用户端源码+mysql数据库+lw文档+系统+调试部署 java计算机毕业设计信用卡增值业务系统小程序用户端源码+mysql数据库+lw文档+系统+调试部 ...

  6. java计算机毕业设计基于安卓Android/微信小程序的大学生签到管理系统APP

    项目介绍 随着Internet的发展,人们的日常生活已经离不开网络.未来人们的生活与工作将变得越来越数字化,网络化和电子化.网上管理,它将是直接管理签到系统app的最新形式.本论文是以构建签到系统ap ...

  7. java计算机毕业设计基于安卓Android/微信小程序的游泳馆管理系统APP

    项目介绍 游泳馆管理系统小程序,主要对首页.个人中心.会员管理.场馆类型管理.泳池类型管理.饮食类型管理.场馆信息管理.泳池信息管理.饮食信息管理.泳池预订管理.购买信息管理.会员等级管理.会员充值管 ...

  8. 小程序导航图标_商场寻店不迷路 业内首个小程序AR导航上线

    出门在外迷了路,打开地图立即定位.可一旦进到购物中心,想要通过导航寻找商家,就没那么容易了.不仅容易"转向",面对琳琅满目的店铺,也不知如何是好. 不过在深圳壹方城购物中心,这些烦 ...

  9. java计算机毕业设计基于安卓Android/微信小程序的校园闲置二手交易平台APP

    项目介绍 网络技术的快速发展给各行各业带来了很大的突破,也给各行各业提供了一种新的管理模式,校园二手交易平台小程序将是又一个从传统管理到智能化信息管理的典型案例,对于传统的校园二手交易,所包括的信息内 ...

最新文章

  1. Silverlight+WCF 新手实例 象棋 主界面-实时聊天区(二十五)
  2. PAT 1015__部分正确__已解决
  3. 恶意网址提醒服务见实效
  4. python基础之python中if __name__ == '__main__': 的解析
  5. 移植基于linux-2.6.26.5内核s3c2410触摸屏驱动移植
  6. The Power of Android Action Bars(转载)
  7. hibernate框架学习之使用SQLQuery查询数据
  8. 【JUnit 报错】 method initializationerror not found:JUnit4单元测试报错问题
  9. 互联网早报 | 3月16日 星期二 | 微信AI直播助理开放内测;汽车之家港交所挂牌上市;美团App内测“群聊”功能...
  10. JVM性能分析与定位
  11. 红米AirDots无线蓝牙耳机连接win10笔记本
  12. android textwatcher 获取当前控件,Android中AutoCompleteTextView与TextWatcher结合小实例
  13. 小规模纳税人和一般纳税人的区别
  14. drawLine()方法画粗线
  15. 生物信息学: 导论与方法 | 总结笔记
  16. 2021 iOS面试题大全---全方面剖析面试(二)
  17. 在vue里引入使用Ag-grid表格插件
  18. Manjaro更换系统默认字体,主题
  19. 淘宝越来越重视的内容营销要怎么去做?
  20. [渝粤教育] 西安电子科技大学 工程制图与计算机绘图 参考 资料

热门文章

  1. 打不开“计算机管理”
  2. 登录功能中发送邮箱验证的简单使用
  3. 【Problems】:JSON parse error: Invalid UTF-8 start byte 0xbd;
  4. Locust入门教程
  5. erp5开源制造业erp和dream生产排程软件集成指南
  6. 业精于勤,荒于嬉;行成于思,毁于随
  7. matlab图形网格线画虚线
  8. PowerShell 学习笔记:压缩、解压缩文件
  9. 用DW(html+css+js)做自我介绍还带有登录页面
  10. NOKOV度量动捕软件教程(1):软件安装与设置