jueshimuye

您所在的位置:网站首页 BMI体质计算器 jueshimuye

jueshimuye

2024-07-16 03:24| 来源: 网络整理| 查看: 265

任务分析

创建MyBMIApp+学号+姓名首字母缩写,如MyBMIApp01JZY,完成BMI指数计算功能。要求使用Intent视图跳转,即从一个Activity(输入身高体重,图1所示)跳转到第二个Activity(显示计算结果,图2所示。其中bmi值与性别值是从图1中传递过来,并根据bmi值给出体重指数是偏瘦、合适还是偏胖等,以及显示相应的图片(自己各找一张瘦、合适、胖的图片))

功能描述如下:

完成如图1和2所示的BMI指数计算APP。BMI(Body Mass Index)即身体质量指数,是与体内脂肪总量密切相关的指标,主要反映全身性超重和肥胖。由于BMI计算的是身体脂肪的比例,所以在测量身体因超重而面临心脏病、高血压等风险上,比单纯的以体重来认定,更具准确性。它的计算公式为:体重(kg)除以身高(m)的平方(BMI =公斤/m2)。

体重指数:

l 19以下 体重偏低,偏瘦

l 19-25 健康体重,身材正常

l 25-30 超重,偏胖

l 30-39 严重超重,肥胖

l 40及40以上 极度超重,属于严重肥胖

此处提交string文件。要求贴截图,每个键值对命名要带上自己的学号。

注意:项目名为MyBMIApp+学号+姓名首字母缩写,如MyBMIApp01JZY,每个键值对命名要带上自己的学号。

(10.0分)

 

1.首先已知两个页面,在java中新建一个安卓项目,名称不变Main2Activity(这个作为第二个页面,用作跳转接收信息)

用到相关知识

Intent intent = new Intent(MainActivity.this,Main2Activity.class); //指明从MainActivity页面跳转到Main2Activity页面 intent.putExtra("valuename",value); //传值传递,第一个页面value传到第二个页面,第二个接收的值是valuename startActivity(intent); //启动 intent = getIntent(); //连接传递到本页面的start String str = intent.getStringExtra("valuename"); //定义str存储传递的值

2.进行String文件编写

只需要将需要显示的文字,按照格式写入

参考代码:

MyBMIApp42ljz BMI指数计算 请输入您的身高(cm) 请输入您的体重(kg) 请选择您的性别 男 女 开始计算 先生 女士 体重偏低,偏瘦 恭喜,您身材合理,很苗条! 超重,偏胖 严重超重,肥胖 极度超重,属于严重肥胖 请输入身高体重 除数不能为0

3.进行第一个页面布局编辑

(4个文本显示,2个文本输入框,2个单选框,1个按钮再加上简单的布局)

注意:单选框需要放入RadioGroup中,否则两个组件时单独的,无联系

文本输入框中要修改input类型

组件id要修改好,在Java中需要引用,需要分清

参考代码:

//文本显示标题 //文本显示 //文本输入 //文本显示 //文本输入 //文本输入显示 //单选框 //单选框 //按钮

4.进行第二个页面布局编辑

(只需要一个文本显示,一个图片显示,加简单居中)

参考代码:

5.进行第一个页面java编程

先定义需要用到的组件,在进行与布局组件关联,接下来监控按钮时间,在里面对数值进行计算

最后用到开头的知识,进行数值传递到下一个页面

参考代码:

package wjx171142.com; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.Toast; public class MainActivity extends AppCompatActivity { //定义需要用到的组件 private EditText edit_height,edit_weight; private RadioButton rtn_M,rtn_F; private Button btn_sumbit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //进行组件与布局页面组件关联 edit_height = findViewById(R.id.edit_height); edit_weight = findViewById(R.id.edit_weight); rtn_M = findViewById(R.id.rbtn_M); rtn_F = findViewById(R.id.rbtn_F); btn_sumbit = findViewById(R.id.btn_cal); //按钮点击事件监控 btn_sumbit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //获取身高、体重的文本 String height = edit_height.getText().toString().trim(); String weighy = edit_weight.getText().toString().trim(); //定义性别初始为女 String bmisex = getString(R.string.toast_callnameF); //判断性别男按钮点击事件 //如果点击赋值为先生 if (rtn_M.isChecked()){ bmisex = getString(R.string.toast_callnameM); } //判断身高、体重是否为空 if (height.isEmpty()&&weighy.isEmpty()){ Toast.makeText(MainActivity.this, R.string.toast_empty, Toast.LENGTH_SHORT).show(); }else { //转换为小数 double douheight = Double.parseDouble(height); double douweight = Double.parseDouble(weighy); //将身高转换为m douheight *= 0.01; //判断除数(身高)是否为0 if (douheight == 0) { Toast.makeText(MainActivity.this, R.string.toast_zero, Toast.LENGTH_SHORT).show(); } else { double bmivalue = douweight / (douheight * douheight); Intent intent = new Intent(MainActivity.this, Main2Activity.class); intent.putExtra("bmivalue", bmivalue); intent.putExtra("bmisex", bmisex); startActivity(intent); } } } }); } }

6.进行第二个页面java编程

先定义需要用到的组件,在进行与布局组件关联,接下来用到开头的知识,进行接收传递到数据,最后修改组件的值

参考代码:

package wjx171142.com; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ImageView; import android.widget.TextView; public class Main2Activity extends AppCompatActivity { private TextView title; private ImageView img; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); title = findViewById(R.id.txt_out); img = findViewById(R.id.img_out); intent = getIntent(); //接收的double数值需要给一个初始值 double douvalue = intent.getDoubleExtra("bmivalue",0.00); String strsex = intent.getStringExtra("bmisex"); String strout = "",imgout = ""; if (douvalue < 19){ strout = getString(R.string.toast_thin); img.setImageResource(R.drawable.thin); }else if(douvalue >= 19&&douvalue 25&&douvalue = 30&&douvalue = 40){ strout = getString(R.string.toast_fat2); img.setImageResource(R.drawable.fat2); } title.setText(strsex+",您的BMI值="+douvalue+"。"+strout); } }

最后加上shape文件

代码参考:

希望能帮助到大家,附上成果图



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3