全部博文(436)
分类:
2010-10-21 23:15:58
3. BMI深入(此部分内容由陈艳艳完成)
3.1描述
该示例的功能是:输入身高和体重,点击计算BMI值,系统将给出BMI值和相关建议
3.2Bmi.java源程序:
package com.demo.android.bmi;
import java.text.DecimalFormat;
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.TextView;
public class Bmi extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//按钮监听者
Button button = (Button)findViewById(R.id.submit);//强制将取得的资源型别设成"button"型别
button.setOnClickListener(calcBMI);
}
private OnClickListener calcBMI = 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);
//透过findViewById 方法,从资源档中取得对应的文字栏位元件
double height = Double.parseDouble(fieldheight.getText().toString())/100;
double weight = Double.parseDouble(fieldweight.getText().toString());
double BMI = weight / (height * height);//计算BMI值
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);
}
}
};
}
Main.xml源程序:
xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns: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:numeric="integer" 仅允许输入整数数字
android:text="" 指定EditText 界面元件预设显示的文字(数字)。
/> 编辑文字
<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="wrap_content"
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源程序:
xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">BMIstring>
<string name="height">身高(cm)string>
<string name="weight">体重(kg)string>
<string name="bmi_btn">计算BMI 值string>
<string name="bmi_result">你的BMI 值是string>
resources>
在 values下创建advice文件,气源程序为 :
xml version="1.0" encoding="utf-8"?>
<resources>
<string name="advice_light">你该多吃点string>
<string name="advice_average">体型很棒喔string>
<string name="advice_heavy">你该节食了string>
resources>
3.3功能的效果
4.实现多个activity的用户界面设计(此部分内容由陈艳玲完成)
4.1功能描述
实现多个activity的用户界面设计,两个跳转的activity的页面
项目名称:layout
应用名称:layout
包名:com.eoeandroid.layout
4.2程序
(1)新建一个主activity
名称:ActivityMain.java
package com.eoeandroid.layout;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ActivityMain extends Activity {
Button button0;
//配置的监听程序
OnClickListener listener0= new OnClickListener() {
public void onClick(View v){
//通过Intent这个类能够使我们从本页面跳转到ActivityRelativeLayout这个类里面
Intent intent1 =new Intent(ActivityMain.this,ActivityRelativeLayout.class);
startActivity(intent1);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button0 = (Button) findViewById(R.id.button0);
//为butonO按钮注册监听程序
button0.setOnClickListener(listener0);
}
}
(2) 新建一个跳转到的activity
ActivityRelativeLayout.java
package com.eoeandroid.layout;
import android.app.Activity;
import android.os.Bundle;
public class ActivityRelativeLayout extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//通过这个方法显示:relative_layout.xml配置的界面
setContentView(R.layout.relative_layout);
}
}
上面的类已经建完成了,下面就需要构建UI层,android的界面一般通常情况下界面都是通过xml的配置显示效果界面出来,当然也可以用java代码编写出来。
(3)配置主屏幕显示的界面也就是ActivityMain.java的界面(ActivityMain.java只是将按钮注册了一个监听但没有显示):
ActivityMain默认的main.xml中配置:
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:layout_height="wrap_content" android:text="我来了" />
android:layout_height="wrap_content" android:text="@string/hello" />
上面的XML的配置效果是:一个按钮,按钮上面文字是:“我来了”,按钮下面有一行字“HelloWorld Actitymain”
(4)添加配置需要转到的页面的xml配置文件:
relative_layout.xml
xmlns:android=""
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:layout_height="wrap_content" android:text="请输入用户名:" />
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label" />
android:layout_height="wrap_content" android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip" android:text="取消" />
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/cancel"
android:layout_alignTop="@id/cancel" android:text="确定" />
(5)上面的两个配置是两个页面的的UI的XML配置文件,现在还需要将两个界面的Actity的java类都添加到android系统中,这时还需要配置一下默认的一个文件:AndroidManifest.xml
package="com.eoeandroid.layout"
android:versionCode="1"
android:versionName="1.0">
android:label="@string/app_name">
4.3功能实现的效果图