String pwd=((EditText)findViewById(R.id.pwd)).getText().toString(); //获取输入的密码
String repwd=((EditText)findViewById(R.id.repwd)).getText().toString(); //获取输入的确认密码
String email=((EditText)findViewById(R.id.email)).getText().toString(); //获取输入的E-mail地址
if(!"".equals(user) && !"".equals(pwd) && !"".equals(email)){
if(!pwd.equals(repwd)){ //判断两次输入的密码是否一致
Toast.makeText(MainActivity.this, "两次输入的密码不一致,请重新输入!",
Toast.LENGTH_LONG).show();
((EditText)findViewById(R.id.pwd)).setText(""); //清空“密码”编辑框
((EditText)findViewById(R.id.repwd)).setText(""); //清空“确认密码”编辑框
((EditText)findViewById(R.id.pwd)).requestFocus(); //让“密码”编辑框获得焦点
}else{ //将输入的信息保存到Bundle中,并启动一个新的Activity显示输入的用户注册信息
Intent intent=new Intent(MainActivity.this,RegisterActivity.class);
Bundle bundle=new Bundle(); //创建并实例化一个Bundle对象
bundle.putCharSequence("user", user); //保存用户名
bundle.putCharSequence("pwd", pwd); //保存密码
bundle.putCharSequence("email", email); //保存E-mail地址
intent.putExtras(bundle); //将Bundle对象添加到Intent对象中
startActivity(intent); //启动新的Activity
}
}else{
Toast.makeText(MainActivity.this, "请将注册信息输入完整!", Toast.LENGTH_LONG).show();
}
}
});
说明: 在上面的代码中,加粗的代码用于创建Intent对象,并将要传递的用户注册信息通过Bundle对象添加到该Intent对象中。
(3)在res\layout目录中,创建一个名为register.xml的布局文件,在该布局文件中采用垂直线性布局管理器,并且添加3个TextView组件,分别用于显示用户名、密码和E-mail地址。
(4)在com.mingrisoft包中,创建一个继承Activity类的RegisterActivity,并且重写onCreate()方法。在重写的onCreate()方法中,首先设置该Activity使用的布局文件register.xml中定义的布局,然后获取Intent对象以及传递的数据包,最后将传递过来的用户名、密码和E-mail地址显示到对应的TextView组件中。关键代码如下:
public class RegisterActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register); //设置该Activity中要显示的内容视图
Intent intent=getIntent(); //获取Intent对象
Bundle bundle=intent.getExtras(); //获取传递的数据包
TextView user=(TextView)findViewById(R.id.user); //获取显示用户名的TextView组件
//获取输入的用户名并显示到TextView组件中
user.setText("用户名:"+ bundle.getString("user") );
TextView pwd=(TextView)findViewById(R.id.pwd); //获取显示密码的TextView组件
pwd.setText("密码:"+ bundle.getString("pwd") ); //获取输入的密码并显示到TextView组件中
TextView email=(TextView)findViewById(R.id.email); //获取显示E-mail地址的TextView组件
//获取输入的E-mail地址并显示到TextView组件中
email.setText("E-mail:"+ bundle.getString("email") );
}
}
说明: 在上面的代码中,加粗的代码用于获取通过Intent对象传递的用户注册信息。
(5)在AndroidManifest.xml文件中配置AboutActivity,配置的主要属性有Activity使用的图标、实现类和标签,具体代码如下:
android:label="显示用户注册信息"
android:icon="@drawable/ic_launcher"
android:name=".RegisterActivity">
运行本实例,将显示一个填写用户注册信息的界面,输入用户名、密码、确认密码和E-mail地址后,如图5.7所示,单击“提交”按钮,将显示如图5.8所示的界面,显示填写的用户注册信息。
图5.7 填写用户注册信息界面 图5.8 显示用户注册信息界面
5.3.2 调用另一个Activity并返回结果
在Android应用开发时,有时需要在一个Activity中调用另一个Activity,当用户在第二个Activity中选择完成后,程序自动返回到第一个Activity中,第一个Activity必须能够获取并显示用户在第二个Activity中选择的结果;或者,在第一个Activity中将一些数据传递到第二个Activity,由于某些原因,又要返回到第一个Activity中,并显示传递的数据,如程序中经常出现的“返回上一步”功能。这时,也可以通过Intent和Bundle来实现。与在两个Acitivity之间交换数据不同的是,此处需要使用startActivityForResult()方法来启动另一个Activity。下面通过一个具体的实例介绍如何调用另一个Activity并返回结果。