标准个人身高计算器由一个main.xml文件和HeightCalculatorActivity类实现,其完整代码如下。
(1)标准个人身高程序界面布局XML:【main.xml】。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<!-- 标题 -->
<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:text="个人标准身高计算器"
android:textSize="22.0dip"
android:textStyle="bold"
android:layout_marginTop="20.0dip"/>
</LinearLayout>
<!--体重 输入框 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="10.0dip"
>
<TextView android:layout_width="120.0dip"
android:layout_height="wrap_content"
android:text="请输入你的体重:"
android:layout_marginLeft="5.0dip"
/>
<EditText android:layout_width="150.0dip"
android:id="@+id/weight"
android:layout_height="wrap_content"
android:inputType="number" />
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="kg"
/>
</LinearLayout>
<!--性别选择控件-->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView android:layout_width="120.0dip"
android:layout_height="wrap_content"
android:text="请选择你的性别:"
android:layout_marginLeft="5.0dip"
/>
<CheckBox
android:id="@+id/man"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton android:id="@+id/man"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="男"></RadioButton>
<RadioButton android:id="@+id/woman"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"></RadioButton>
</RadioGroup>
</LinearLayout>
<!-- 计算事件按钮 -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
>
<Button
android:layout_marginTop="20.0dip"
android:layout_width="200.0dip"
android:layout_height="wrap_content"
android:id="@+id/calculator"
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"/>
</LinearLayout>
</LinearLayout>
(2)标准个人身高程序实现类:【HeightCalculatorActivity.java】。
package com.demo.pr2;
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;
/********************(C)COPYRIGHT 2012********************
* 项目名称:个人标准身高计算器。
* 项目目标:
*(1)开发输入界面。
*(2)进行事件处理。
*(3)处理计算结果。
*(4)发布到手机。
***********************************************************/
public class HeightCalculatorActivity extends Activity {
/** Called when the activity is first created. */
//计算按钮
private Button calculatorButton;
//体重输入框
private EditText weightEditText;
//男性选择框
private CheckBox manCheckBox;
//女性选择框
private CheckBox womanCheckBox;
//显示结果
private TextView resultTextView;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//设置页面布局
setContentView(R.layout.main);
//从 main.xml 页面布局中获得对应的UI控件
calculatorButton=(Button)findViewById(R.id.calculator);
weightEditText=(EditText)findViewById(R.id.weight);
manCheckBox=(CheckBox)findViewById(R.id.man);
womanCheckBox=(CheckBox)findViewById(R.id.woman);
resultTextView=(TextView)findViewById(R.id.result);
}
@Override
protected void onStart() {
super.onStart();
//注册事件
registerEvent();
}
/**
* 注册事件
*/
private void registerEvent()
{
//注册按钮事件
calculatorButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v){
//判断是否已填写体重数据
if(!weightEditText.getText().toString().trim().equals(""))
{
//判断是否已选择性别
if(manCheckBox.isChecked()||womanCheckBox.isChecked())
{
Double weight=Double.parseDouble(weightEditText
.getText().toString());
StringBuffer sb=new StringBuffer();
sb.append("------评估结果----- \n");
if(manCheckBox.isChecked())
{
sb.append("男性标准身高:");
//执行运算
double result=evaluateHeight(weight,"男");
sb.append((int)result+"(厘米)");
}
if(womanCheckBox.isChecked())
{
sb.append("女性标准身高:");
//执行运算
double result=evaluateHeight(weight,"女");
sb.append((int)result+"(厘米)");
}
//输出页面显示结果
resultTextView.setText(sb.toString());
}else
{
showMessage("请选择性别!");
}
}else
{
showMessage("请输入体重!");
}
}
});
}
/**
*计算处理执行代码事件
*/
private double evaluateHeight(double weight,String sex)
{
double height;
if(sex=="男"){
height=170-(62-weight)/0.6;
}else{
height =158-(52-weight)/0.5;
}
return height;
}
/**
* 消息提示
* @param message
*/
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){
// TODO Auto-generated method stub
switch(item.getItemId()){
case 1://退出
finish();
break;
}
return super.onOptionsItemSelected(item);
}
}