万书网 > 文学作品 > Android从入门到精通 > 第59页

第59页





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并返回结果。