本文介绍一个简易的标准体重计算器Android应用的开发实例。此功能在以前的手机中我们也经常看到。
应用的操作和原理
目标Android应用的操作过程是这样的:选择你的性别,然后输入你的身高,点查看计算结果的按钮就在Toast中显示你的标准体重。力求操作简单,结果显示清楚。
标准体重的计算公式:
男性:(身高cm-80)×70﹪=标准体重
女性:(身高cm-70)×60﹪=标准体重
应用的源码
BMIActivity.java:
- package
com.lingdududu.bmi; - import
java.text.DecimalFormat; - import
java.text.NumberFormat; - import
android.app.Activity; - import
android.os.Bundle; - import
android.view.View; - import
android.view.View.OnClickListener; - import
android.widget.Button; - import
android.widget.EditText; - import
android.widget.RadioButton; - import
android.widget.Toast; -
- public
class BMIActivity extends Activity { -
-
private Button countButton; -
private EditText heighText; -
private RadioButton maleBtn, femaleBtn; -
String sex = ""; -
double height; -
@Override -
public void onCreate(Bundle savedInstanceState) { -
super.onCreate(savedInstanceState); -
setContentView(R.layout.main); -
//调用创建视图的函数 -
creadView(); -
//调用性别选择的函数 -
sexChoose(); -
//调用Button注册监听器的函数 -
setListener(); -
} -
//响应Button事件的函数 -
private void setListener() { -
countButton.setOnClickListener(countListner); -
} -
private OnClickListener countListner = new OnClickListener() { -
@Override -
public void onClick(View v) { -
// TODO Auto-generated method stub -
Toast.makeText(BMIActivity.this, "你是一位"+sexChoose()+"\n" -
+"你的身高为"+Double.parseDouble(heighText.getText().toString())+"cm" -
+"\n你的标准体重为"+getWeight(sexChoose(), height)+"kg", Toast.LENGTH_LONG) -
.show(); -
} -
}; -
//性别选择的函数 -
private String sexChoose(){ -
if (maleBtn.isChecked()) { -
sex = "男性"; -
} -
else if(femaleBtn.isChecked()){ -
sex = "女性"; -
} -
return sex; -
} -
//创建视图的函数 -
public void creadView(){ -
//txt=(TextView)findViewById(R.id.txt); -
countButton=(Button)findViewById(R.id.btn); -
heighText=(EditText)findViewById(R.id.etx); -
maleBtn=(RadioButton)findViewById(R.id.male); -
femaleBtn=(RadioButton)findViewById(R.id.female); -
//txt.setBackgroundResource(R.drawable.bg); -
} -
//标准体重格式化输出的函数 -
private String format(double num) { -
NumberFormat formatter = new DecimalFormat("0.00"); -
String str = formatter.format(num); -
return str; -
} -
//得到标准体重的函数 -
private String getWeight(String sex, double height) { -
height = Double.parseDouble(heighText.getText().toString()); -
String weight = ""; -
if (sex.equals("男性")) { -
weight =format((height - 80) * 0.7); -
} -
else { -
weight = format((height - 70) * 0.6); -
} -
return weight; -
} -
} -
main.xml: