Android开发初体验 - 体质指数BMI.Calc
Android开发初体验 - 体质指数BMI.Calc
这两天终于下定决心把书看起来了,在搭好开发环境后接触了第一个除了Hello World的Android初学小例,对基于Eclipse的Android编程有了一个框架性的粗浅认识。
使用的书是人民邮电出版社《Google Android开发入门指南(第二版)》。菜鸟踏出了第一步!
《Google Android开发入门指南(第二版)》源代码下载地址:
免费下载地址在 http://linux.bkjia.com/
用户名与密码都是www.bkjia.com
具体下载目录在 /pub/2011/09/03/Google Android开发入门指南(第二版)源代码/
开发手记:
版本v1.8.6.3.40
功能更新:
1.增加MENU菜单
2.修改关于对话框和一键登录微博功能移至菜单
3.增加菜单中退出程序功能
4.修改计算结果和建议移至下一面板
5.超重时状态栏提示功能
版本v1.8.5.10.52
功能更新:
1.增加输入框为空时用户提示
2.增加按钮呼出关于对话框功能
3.增加一键登录微博功能
版本v1.8.4.21.11
测试平台:Android1.5 HVGA
功能特性:
1.计算常人体质指数并给出建议
JAVA源代码
版本v1.8.6.3.40
- //Bmi.java
- package com.demo.android.bmi;
- import java.net.URISyntaxException;
- import java.text.DecimalFormat;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.net.Uri;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- import android.widget.Toast;
- public class Bmi extends Activity {
- /** Called when the activity is first created. */
- @Override
- // 重写函数
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);// 原方法调用
- setContentView(R.layout.main);// 显示在屏幕上
- // Listen for button clicks
- // findViewById方法取得按钮组件,为保持与XML文件描述类型一致作强制转换
- 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");// 定义双精度浮点数
- * try {
- * 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("您的体质指数BMI值为:" + nf.format(BMI)); //
- * 这里我一开始用"@string/bmi_result",后来用R.string.bmi_result,结果都不行,估计和+号有关系
- *
- * 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); } } catch
- * (Exception obj) { Toast.makeText(Bmi.this, "真傲娇,两个空都要填满的!",
- * Toast.LENGTH_LONG) .show(); // 自动隐去型面包板,作用于提示很友好 } }
- */
- // 以上第一版第二版点击按钮计算BMI值
- // 以下第三版点击按钮跳转到报告页面
- EditText field_height = (EditText) findViewById(R.id.height);// 取数
- EditText field_weight = (EditText) findViewById(R.id.weight);// 取数
- if("".equals(field_height.getText().toString())||"".equals(field_weight.getText().toString()))
- {
- Toast.makeText(Bmi.this, "别傲娇,两个空都要填满的!",Toast.LENGTH_LONG) .show();
- }
- else{
- Intent intent = new Intent();
- intent.setClass(Bmi.this, Report.class);
- Bundle bundle = new Bundle();
- bundle.putString("KEY_HEIGHT", field_height.getText().toString());
- bundle.putString("KEY_WEIGHT", field_weight.getText().toString());
- intent.putExtras(bundle);
- startActivity(intent);
- }
- }
- };
- protected static final int MENU_ABOUT = Menu.FIRST;
- protected static final int MENU_Quit = Menu.FIRST + 1;
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {// 创建菜单
- // TODO Auto-generated method stub
- super.onCreateOptionsMenu(menu);
- menu.add(0, MENU_ABOUT, 0, "关于...").setIcon(
- android.R.drawable.ic_menu_info_details);
- menu.add(0, MENU_Quit, 0, "退出").setIcon(
- android.R.drawable.ic_menu_close_clear_cancel);
- return super.onCreateOptionsMenu(menu);
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {// 处理菜单选项动作
- // TODO Auto-generated method stub
- switch (item.getItemId()) {
- case MENU_ABOUT:
- OpenOptionsDialog();
- break;
- case MENU_Quit:
- finish();
- break;
- }
- return super.onOptionsItemSelected(item);
- }
- private void OpenOptionsDialog() {
- new AlertDialog.Builder(Bmi.this).setTitle(R.string.about_title)// 设置标题
- .setMessage(R.string.about_msg)// 设置内容
- .setPositiveButton(R.string.ok_label,
- new DialogInterface.OnClickListener() {
- public void onClick(
- DialogInterface dialoginterface, int i) {// 函数体空,点击即关闭
- }
- })// 添加确认按钮
- .setNegativeButton(R.string.homepage_label,
- new DialogInterface.OnClickListener() {
- public void onClick(
- DialogInterface dialoginterface, int i) {
- Uri uri = Uri
- .parse(getString(R.string.homepage_uri));
- // 注意:这里网址一定要有http://,否则坑爹的FOCUS又来
- Intent intent = new Intent(Intent.ACTION_VIEW,
- uri);
- startActivity(intent);
- }
- })// 添加去往主页按钮
- .show();// 显示
- }
- }
|
评论暂时关闭