BMI指数计算器,用于根据用户的体重、身高和性别来计算身体的质量指数。
1.[代码]MainActivity
package com.dddpeter.myapp;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
public class MainActivity extends Activity {
EditText myHeight=null;
EditText myWeight=null;
Button calculateButton=null;
TextView result=null;
float myBMI=0;
RadioGroup groupSex=null;
RadioButton radioButtonMan=null;
RadioButton radioButtonWoman=null;
boolean isMan;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myHeight=(EditText) findViewById(R.id.myHeight);
myWeight=(EditText) findViewById(R.id.myWeight);
calculateButton=(Button) findViewById(R.id.buttonCalculate);
result=(TextView) findViewById(R.id.textViewResult);
groupSex=(RadioGroup) findViewById(R.id.radioGroup1);
radioButtonMan=(RadioButton) findViewById(R.id.radioMan);
radioButtonWoman=(RadioButton) findViewById(R.id.radioWoman);
isMan=true;
groupSex.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int id) {
if(id==radioButtonWoman.getId()){
isMan=false;
}
}
});
calculateButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(myHeight.getText().toString().trim().equals("")){
result.setText("必须填写身高(CM)");
return;
}
if(myWeight.getText().toString().trim().equals("")){
result.setText("必须填写体重(KG)");
return;
}
int height=Integer.parseInt(myHeight.getText().toString().trim());
int weight=Integer.parseInt(myWeight.getText().toString().trim());
myBMI=(float) (weight/(Math.pow(height/100.0, 2)));
String strResult="";
StringBuffer strBuf=new StringBuffer();
strBuf.append("您的BMI指数为:"+myBMI+",体重");
if(isMan){
if(myBMI<20){
strResult="偏轻";
}
else if(myBMI>=20 && myBMI<=25)
{
strResult="适中";
}
else if(myBMI>25 && myBMI<=30)
{
strResult="过重";
}
else if(myBMI>30 && myBMI<=35)
{
strResult="肥胖";
}
else{
strResult="非常肥胖";
}
}
else{
if(myBMI<19){
strResult="偏轻";
}
else if(myBMI>=19 && myBMI<=24)
{
strResult="适中";
}
else if(myBMI>24 && myBMI<=29)
{
strResult="过重";
}
else if(myBMI>29 && myBMI<=34)
{
strResult="肥胖";
}
else{
strResult="非常肥胖";
}
}
strBuf.append(strResult);
result.setText(strBuf.toString());
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
2.[代码]Layout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAlignment="center"
tools:context=".MainActivity" xmlns:android="http://schemas.android.com/apk/res/android">
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="20dp"
android:gravity="center"
android:text="@string/app_name"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
android:id="@+id/tableRow1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="55dp" >
android:id="@+id/textViewMyHeightLable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/labelHeight"
android:textAppearance="?android:attr/textAppearanceMedium" />
android:id="@+id/myHeight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number" >
android:id="@+id/tableRow2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tableRow1"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp" >
android:id="@+id/textViewMyWeightLable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lableWeight"
android:textAppearance="?android:attr/textAppearanceMedium" />
android:id="@+id/myWeight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number" >
android:id="@+id/tableRow3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tableRow2"
android:layout_centerHorizontal="true"
android:gravity="left"
android:layout_marginTop="10dp"
>
android:id="@+id/textViewMySexLable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/labelSex"
android:textAppearance="?android:attr/textAppearanceMedium" />
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
android:id="@+id/radioMan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/labelSexMan" />
android:id="@+id/radioWoman"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="@string/labelSexWoman" />
android:id="@+id/tableRow4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tableRow3"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:gravity="center" >
android:id="@+id/buttonCalculate"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:text="@string/buttonText" />
android:id="@+id/textViewResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/tableRow4"
android:layout_marginTop="20dp"
android:textAppearance="?android:attr/textAppearanceLarge" />