Android身体健康指标BMI项目实现文档格式.docx
《Android身体健康指标BMI项目实现文档格式.docx》由会员分享,可在线阅读,更多相关《Android身体健康指标BMI项目实现文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
BMI1,如下
在项目“BMI1”->
“res”->
“values”->
“strings.xml”中添加字符串,用于界面显示
编辑layout文件夹下的“main.xml”界面,如下
双击设计视图中的任意控件进入“main.xml”中修改控件的xml代码。
代码如下:
<
?
xmlversion="
1.0"
encoding="
utf-8"
>
LinearLayoutxmlns:
android="
android:
layout_width="
fill_parent"
layout_height="
orientation="
vertical"
>
<
TextView
wrap_content"
text="
@string/hello"
/>
id="
@+id/textView1"
@string/bmi_height"
textAppearance="
android:
attr/textAppearanceLarge"
EditText
@+id/height"
ems="
10"
requestFocus/>
/EditText>
@+id/textView2"
@string/bmi_weight"
@+id/weight"
Button
@+id/submit"
@string/bmi_button"
@+id/result"
LargeText"
@+id/suggest"
/LinearLayout>
进入图片中的BMI1Activity.java为程序添加代码
BMI1Activity.java代码
packageWU.android.bmi;
importjava.text.DecimalFormat;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.TextView;
publicclassBMI1ActivityextendsActivity{
/**Calledwhentheactivityisfirstcreated.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Buttonbutton=(Button)findViewById(R.id.submit);
button.setOnClickListener(calcBMI);
}
OnClickListenercalcBMI=newOnClickListener(){
publicvoidonClick(Viewv){
EditTextfieldHeight=(EditText)findViewById(R.id.height);
EditTextfieldWeight=(EditText)findViewById(R.id.weight);
doubleheight=Double.parseDouble(fieldHeight.getText().toString())/100;
doubleweight=Double.parseDouble(fieldWeight.getText().toString());
doubleBMI=weight/(height*height);
DecimalFormatnf=newDecimalFormat("
0.00"
);
TextViewshow=(TextView)findViewById(R.id.result);
show.setText("
你的BMI值是"
+nf.format(BMI));
TextViewfieldsuggest=(TextView)findViewById(R.id.suggest);
if(BMI>
25){
fieldsuggest.setText(R.string.advice_heavy);
}
elseif(BMI<
20){
fieldsuggest.setText(R.string.advice_light);
else
fieldsuggest.setText(R.string.advice_average);
}
};
}运行结果:
出入身高和体重,点击Button计算BMI的值
2、实现一个优化后、支持单选项菜和对话框的、单Activity的BMI项目
相关代码:
Menu相关代码:
protectedstaticfinalintMENU_ABOUT=Menu.FIRST;
protectedstaticfinalintMENU_QUIT=Menu.FIRST+1;
publicbooleanonCreateOptionsMenu(Menumenu){//Menu相关方法
//TODOAuto-generatedmethodstub
menu.add(0,MENU_ABOUT,0,"
关于....."
).setIcon(android.R.drawable.ic_menu_help);
menu.add(0,MENU_QUIT,Menu.NONE,"
结束"
).setIcon(android.R.drawable.ic_menu_close_clear_cancel);
returnsuper.onCreateOptionsMenu(menu);
publicbooleanonOptionsItemSelected(MenuItemitem){//Menu相关方法
switch(item.getItemId()){//修改onOptionsItemSelected
caseMENU_ABOUT:
openOptionsDialog();
break;
caseMENU_QUIT:
finish();
returnsuper.onOptionsItemSelected(item);
将findViewById独立:
privateButtonbutton_calc;
privateTextViewview_result;
privateTextViewview_suggest;
privatevoidfindViews(){
button_calc=(Button)findViewById(R.id.submit);
view_result=(TextView)findViewById(R.id.result);
view_suggest=(TextView)findViewById(R.id.suggest);
将setOnClickListener独立:
privatevoidsetListeners(){
button_calc.setOnClickListener(calcBMI);
对话框程序:
privatevoidopenOptionsDialog(){
newAlertDialog.Builder(BMI2.this).setTitle("
关于AndroidBMI"
)
.setMessage("
AndroidBMIcalc"
)//使用匿名的对话框对象
.setPositiveButton("
确认"
newDialogInterface.OnClickListener(){//加入对话框按钮
publicvoidonClick(DialogInterfacedialog,intwhich){
Uriuri=Uri.parse("
tel:
12345678"
Intentintent=newIntent(Intent.ACTION_DIAL,uri);
startActivity(intent);
}
}).show();
}
按Android虚拟机中的“MENU”按钮,在虚拟机的显示屏区下方出现菜单。
计算BMI值或者按菜单中的“关于…”后,会弹出一个“关于AndroidBMI”的对话框。
按上面“关于AndroidBMI”的对话框的“确认”后,会自动跳转到拨号界面
3、实现一个支持多Activity的BMI项目
创建新项目BMI2,如下
添加一个类
android.app.Activity
在“layout”中新建“report.xml”,用于输出结果和建议。
在AndroidManifest.xml加入新Activity描述。
activityandroid:
name="
Report"
/activity>
BMI2.JAVA代码:
importandroid.app.AlertDialog;
importandroid.content.DialogInterface;
importandroid.content.Intent;
import.Uri;
importandroid.view.Menu;
importandroid.view.MenuItem;
publicclassBMI2extendsActivity{
button.setOnClickListener(calcBMI);
Intentintent=newIntent();
intent.setClass(BMI2.this,Report.class);
Bundlebundle=newBundle();
bundle.putString("
HEIGHT"
fieldHeight.getText().toString());
WEIGHT"
fieldWeight.getText().toString());
startActivity(intent);
};
Report.JAVA代码:
publicclassReportextendsActivity{
protectedvoidonCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.report);
showResults();
privatevoidshowResults(){
Bundlereceive=this.getIntent().getExtras();
Doubleheight=Double.parseDouble(receive.getString("
))/100;
doubleweight=Double.parseDouble(receive.getString("
));
doubleBMI=weight/(height*height);
DecimalFormatnf=newDecimalFormat("
TextViewfieldsuggest=(TextView)findViewById(R.id.suggest);
fieldsuggest.setText(getText(R.string.result)+nf.format(BMI));
if(BMI>
fieldsuggest.setText(R.string.advice_light);
elseif(BMI<
fieldsuggest.setText(R.string.advice_heavy);
else
fieldsuggest.setText(R.string.advice_average);
运行结果:
点击“计算BMI的值”,跳转到第二页
点击“返回”,跳转到第一页。
五、实验心得与小结
本次实验实现一个身体健康指标计算的Android程序,分三个阶段完善。
通过该实验,我掌握了简单的Android开发,了解了选项菜单、对话框、多Activity等各种简单控件的使用。
第一个阶段:
此时要求比较简单,只要写一个普通的BMI程序,要注意的是控件的Id的设置要准确,否则程序会出错,值传递会出现问题。
做好每一步都要记得保存,如果没保存,可能在另外一个控件操作时可能会没反应。
第二个阶段:
此阶段实验要在原来的BMI程序中加上选项菜单和对话框,难度有所增加,同时也更加富有乐趣。
图标可以自定义,选择自己喜欢的图标加在程序中,让做程序也成为了一种快乐。
按下按钮若程序没有发生跳转,则要注意按钮事件是否定义正确。
第三个阶段:
实现多Activity相对来说步骤比较多,只要仔细执行各个步骤,也不是难点。
要返回“上一页”的“onClickBack()”方法定义好后,不能忘了要在控件的“Onclick”属性处进行修改,否则会发生点击“上一页”没有返回的错误。
另外,点击“上一页”返回只是表观现象,实则是把Report.java这个Activity的页面关闭,显示出第一页的页面内容。
六、指导教师评议
成绩评定:
指导教师签名: