Info info=new Info(); //实例化一个保存输入基本信息的对象
if("".equals(((EditText)findViewById(R.id.stature)).getText().toString())){
Toast.makeText(MainActivity.this, "请输入您的身高,否则不能计算!",
Toast.LENGTH_SHORT).show();
return;
}
int stature=Integer.parseInt(((EditText)findViewById(R.id.stature)).getText().toString());
RadioGroup sex=(RadioGroup)findViewById(R.id.sex); //获取设置性别的单选按钮组
//获取单选按钮组的值
for(int i=0;i
RadioButton r=(RadioButton)sex.getChildAt(i); //根据索引值获取单选按钮
if(r.isChecked()){ //判断单选按钮是否被选中
info.setSex(r.getText().toString()); //获取被选中的单选按钮的值
break; //跳出for循环
}
}
info.setStature(stature); //设置身高
Bundle bundle=new Bundle(); //实例化一个Bundle对象
bundle.putSerializable("info", info); //将输入的基本信息保存到Bundle对象中
Intent intent=new Intent(MainActivity.this,ResultActivity.class); //创建一个Intent对象
intent.putExtras(bundle); //将bundle保存到Intent对象中
startActivity(intent); //启动intent对应的Activity
}
});
说明: 在上面的代码中,加粗的代码用于创建一个Bundle对象,并在该对象中放入一个可序列化的Info类的对象。
(4)在res\layout目录中,创建一个名为result.xml的布局文件,在该布局文件中采用垂直线性布局管理器,并且添加3个TextView组件,分别用于显示性别、身高和计算后的标准体重。
(5)在com.mingrisoft包中,创建一个继承Activity类的ResultActivity,并且重写onCreate()方法。在重写的onCreate()方法中,首先设置该Activity使用的布局文件result.xml中定义的布局,然后获取性别、身高和标准体重文本框,再获取Intent对象以及传递的数据包,最后将传递过来的性别、身高和计算后的标准体重显示到对应的文本框中。关键代码如下:
setContentView(R.layout.result); //设置该Activity使用的布局
TextView sex=(TextView)findViewById(R.id.sex); //获取显示性别的文本框
TextView stature=(TextView)findViewById(R.id.stature); //获取显示身高的文本框
TextView weight=(TextView)findViewById(R.id.weight); //获取显示标准体重的文本框
Intent intent=getIntent(); //获取Intent对象
Bundle bundle=intent.getExtras(); //获取传递的数据包
Info info=(Info)bundle.getSerializable("info"); //获取一个可序列化的info对象
sex.setText("您是一位"+info.getSex()+"士"); //获取性别并显示到相应文本框中
stature.setText("您的身高是"+info.getStature()+"厘米"); //获取身高并显示到相应文本框中
//显示计算后的标准体重
weight.setText("您的标准体重是"+getWeight(info.getSex(),info.getStature())+"公斤");
(6)编写根据身高和性别计算标准体重的方法getWeight(),该方法包括两个入口参数:身高和体重,返回值为字符串类型的标准体重。getWeight()方法的具体代码如下:
/**
* 功能:计算标准体重
* @param sex
* @param stature
* @return
*/
private String getWeight(String sex,float stature){
String weight=""; //保存体重
NumberFormat format=new DecimalFormat();
if(sex.equals("男")){ //计算男士标准体重
weight=format.format((stature-80)*0.7);
}else{ //计算女士标准体重
weight=format.format((stature-70)*0.6);
}
return weight;
}
(7)在AndroidManifest.xml文件中配置ResultActivity,配置的主要属性有Activity使用的标签、图标和实现类,具体代码如下:
android:label="显示结果"
android:icon="@drawable/ic_launcher"
android:name=".ResultActivity">
运行本实例,将显示一个输入计算标准体重条件的界面,选择性别并输入身高后,如图5.10所示,单击“确定”按钮,将显示如图5.11所示的计算结果界面。
图5.10 输入性别和身高界面 图5.11 显示计算结果界面
5.3.4 范例2:带选择头像的用户注册页面
例5.6 在Eclipse中创建Android项目,名称为5.6,实现带选择头像的用户注册页面,打开新的Activity选择头像,并将选择的头像返回到原Activity中。(实例位置:光盘\TM\sl\5\5.6)
(1)修改新建项目的res\layout目录下的布局文件main.xml,将默认添加的垂直线性布局管理器修改为水平线性布局管理器,并将默认添加的TextView组件删除,然后添加两个垂直线性布局管理器,并在第一个线性布局管理器中添加一个4行的表格布局管理器,在第二个线性布局管理器中添加一个ImageView组件和一个Button组件,最后在表格布局管理器的各行中添加用于输入用户名、密码和E-mail地址等的TextView组件和EditText组件。由于此处的布局代码比较简单,这里不再给出,具体代码可以参见光盘。