Android studio实现个人体重指数计算

  • Post author:
  • Post category:其他




Java代码

package com.example.work1;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
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.CheckBox;
import android.widget.EditText;
import android.widget.TextView;


    public class HeightCalculatorActivity extends Activity {
        private Button calculatorButton;
        private EditText weightEditText;
        private EditText heightEditText;
        private CheckBox manCheckBox;
        private CheckBox womanCheckBox;
        private TextView resultTextView;
        private EditText nameEditText;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.work);
            calculatorButton = (Button) findViewById(R.id.caculator);
            weightEditText = (EditText) findViewById(R.id.weight);
            heightEditText = (EditText) findViewById(R.id.height);
            manCheckBox = (CheckBox) findViewById(R.id.man);
            womanCheckBox = (CheckBox) findViewById(R.id.woman);
            resultTextView = (TextView) findViewById(R.id.result);
            nameEditText=findViewById(R.id.name);
        }

        protected void onStart() {
            super.onStart();
            registerEvent();
        }

        private void registerEvent() {
            calculatorButton.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    if (!weightEditText.getText().toString().trim().equals("")) {
                        if (manCheckBox.isChecked() || womanCheckBox.isChecked()) {
                            if (!heightEditText.getText().toString().trim().equals("")) {
                                Double weight = Double.parseDouble(weightEditText.getText().toString());
                                Double height = Double.parseDouble(heightEditText.getText().toString());
                                String name=nameEditText.getText().toString();
                                StringBuffer sb = new StringBuffer();
                                sb.append("评估结果\n");
                                if (manCheckBox.isChecked()) {
                                    double result = evaluateweight(height, weight);
                                    if (result < 25 && result >= 18) {
                                        sb.append(name+"先生,您的体重很正常");
                                    } else if (result < 18) {
                                        sb.append(name+"先生,您的体重偏低,需要多吃一点噢");
                                    } else if (result >= 25 && result < 30) {
                                        sb.append(name+"先生,您已超重,请多运动少吃肉");
                                    } else if (result >= 30 && result < 35) {
                                        sb.append(name+"先生,您为轻度肥胖,一定要加强锻炼");
                                    } else if (result >= 35 && result < 40) {
                                        sb.append(name+"先生,您是中度肥胖,请加强锻炼");
                                    } else if(result>=40){
                                        sb.append(name+"先生,您也太胖了吧,您是重度肥胖");
                                    }
                                }
                                if (womanCheckBox.isChecked()) {
                                    double result = evaluateweight(height, weight);
                                    if (result < 25 && result >= 18) {
                                        sb.append(name+"女士,您的体重很正常");
                                    } else if (result < 18) {
                                        sb.append(name+"女士,您的体重偏低,需要多吃一点噢");
                                    } else if (result >= 25 && result < 30) {
                                        sb.append(name+"女士,您已超重,请多运动少吃肉");
                                    } else if (result >= 30 && result < 35) {
                                        sb.append(name+"女士,您为轻度肥胖,一定要加强锻炼");
                                    } else if (result >= 35 && result < 40) {
                                        sb.append(name+"女士,您是中度肥胖,请加强锻炼");
                                    } else {
                                        sb.append(name+"女士,您也太胖了吧,您是重度肥胖");
                                    }
                                }
                                resultTextView.setText(sb.toString());
                            } else {
                                showMessage("请输入身高");
                            }
                        } else {
                            showMessage("请选择性别");
                        }
                    } else {
                        showMessage("请输入体重");
                    }
                }
            });


        }

        private double evaluateweight(double height, double weight) {
            double res;
            res = weight / (height * height);
            return res;
        }

        private void showMessage(String message)
        {
            AlertDialog alert=new AlertDialog.Builder(this).create();
            alert.setTitle("系统信息");
            alert.setMessage(message);
            alert.setButton("确定",new DialogInterface.OnClickListener(){
                public void onClick(DialogInterface dialog,int whichButton)
                {

                }
        });
            alert.show();//显示窗口
        }
        public boolean onCreateOptionsMenu(Menu menu){
            menu.add(Menu.NONE,1,Menu.NONE,"退出");
            return super.onCreateOptionsMenu(menu);
        }
        public boolean onOptionsItemSelected(MenuItem item)
        {
            switch(item.getItemId()){
                case 1:
                    finish();
                    break;
            }
            return super.onOptionsItemSelected(item);
        }
    }







xml代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@mipmap/kebe">

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20.0dip"
        android:gravity="center_horizontal"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="个人体重指数计算器"
            android:textSize="22dp"
            android:textStyle="bold" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10.0dip"
        android:orientation="horizontal">

        <TextView
            android:layout_width="120dip"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dip"
            android:text="请输入你的姓名:"
            android:textSize="14sp" />

        <EditText
            android:id="@+id/name"
            android:layout_width="150.0dip"
            android:layout_height="wrap_content"
            android:inputType="text" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10.0dip"
        android:orientation="horizontal">

        <TextView
            android:layout_width="120dip"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dip"
            android:text="请输入你的体重:"
            android:textSize="14sp" />

        <EditText
            android:id="@+id/weight"
            android:layout_width="150.0dip"
            android:layout_height="wrap_content"
            android:inputType="number|numberDecimal" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="kg" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10.0dip"
        android:orientation="horizontal">

        <TextView
            android:layout_width="120dip"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dip"
            android:text="请输入你的身高:"
            android:textSize="14sp" />

        <EditText
            android:id="@+id/height"
            android:layout_width="150.0dip"
            android:layout_height="wrap_content"
            android:inputType="number|numberDecimal" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="m" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/linearLayout3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="horizontal">

        <TextView
            android:layout_width="120.0dip"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5.0dip"
            android:text="请选择您的性别" />

        <CheckBox
            android:id="@+id/man"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="男">

        </CheckBox>

        <CheckBox
            android:id="@+id/woman"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="女">

        </CheckBox>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="horizontal">

        <Button
            android:id="@+id/caculator"
            android:layout_width="200.0dip"
            android:layout_height="wrap_content"
            android:text="运算" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center_horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/result"
            android:layout_marginTop="10.0dip"
            android:textColor="#FF00FF"
            android:textSize="20dp"/>
    </LinearLayout>


</LinearLayout>


实验样例:


在这里插入图片描述

实验心得:

Java的文件名要改的和类名一致,好久没做都忘了,还有一些很粗心导致的弱智错误,就这样吧。啪啪啪。



版权声明:本文为weixin_45491054原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。