您的位置:首页 > 移动开发 > Android开发

Android 简单应用-身高体重指数(BMI)计算一

2011-08-17 17:44 561 查看
BMI值得算法是“体重除以身高的平方”。

程序的主体:

package com.example;
import java.text.DecimalFormat;
import android.view.View;
import android.view.View.OnClickListener;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class EXAMPLEActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button=(Button)findViewById(R.id.submit);
button.setOnClickListener(calBMI);
}
private OnClickListener calBMI=new OnClickListener(){
public void onClick(View v){
DecimalFormat nf=new DecimalFormat("0.00");
EditText fieldheight=(EditText)findViewById(R.id.height);
EditText fieldweight=(EditText)findViewById(R.id.weight);
double height=Double.parseDouble(fieldheight.getText().toString())/100;
double weight=Double.parseDouble(fieldweight.getText().toString());
double BMI=weight/(height*height);
TextView result=(TextView)findViewById(R.id.result);
result.setText("Your BMI is"+nf.format(BMI));

TextView fieldsuggest=(TextView)findViewById(R.id.suggest);
if(BMI>25){
fieldsuggest.setText(R.string.advice_heavy);
}else if(BMI<20){
fieldsuggest.setText(R.string.advice_light);
}
else{
fieldsuggest.setText(R.string.advice_average);
}
}

};
}
strings.xml

<?xml version="1.0" encoding="utf-8"?>  //每个XML说明文档固定的开头内容
<resources>
<string name="app_name">BMI</string>
<string name="height">身高(cm)</string>
<string name="weight">体重(kg)</string>
<string name="bmi_btn">计算BMI的值</string>
<string name="advice_heavy">你偏重</string>
<string name="advice_light">你偏瘦</string>
<string name="bmi_result">你的BMI的值是</string>
<string name="advice_average">很标准</string>
</resources>
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"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/height"
/>
<EditText
android:id="@+id/height"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:text=""
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/weight"
/>
<EditText
android:id="@+id/weight"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numeric="integer"
android:text=""
/>
<Button
android:id="@+id/submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/bmi_btn"
/>
<TextView
android:id="@+id/result"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
/>
<TextView
android:id="@+id/suggest"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
/>
</LinearLayout>

运行了一下,截图:



填入数据,出错了,不明白,



找出原因了,是在strings.xml文件里面,不能把某些东西写在一起,在res/values目录中新建一个“advice.xml”文件,string里面负责显示的那部门。修改如下

strings.xml

<?xml version="1.0" encoding="utf-8"?>  //每个XML说明文档固定的开头内容
<resources>
<string name="app_name">BMI</string>
<string name="height">身高(cm)</string>
<string name="weight">体重(kg)</string>
<string name="bmi_btn">计算BMI的值</string>
<string name="bmi_result">你的BMI的值是</string>
</resources>
advice.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="advice_heavy">你偏重</string>
<string name="advice_light">你偏瘦</string>
<string name="advice_average">很标准</string>
</resources>
这样就搞定了,私底下还有很多问题,没搞清楚,起码这是一个美好的开始。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: