Activity之间的数据传递
1.发送端Activity
onCreate()方法中:
@Override
public void onClick(View v) {
String pwd=((EditText)findViewById(R.id.pwd)).getText().toString(); //获取输入的密码
String repwd=((EditText)findViewById(R.id.repwd)).getText().toString(); //获取输入的确认密码
if(!"".equals(pwd)){
if(!pwd.equals(repwd)){ //判断两次输入的密码是否一致
((EditText)findViewById(R.id.pwd)).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("pwd", pwd); //保存密码
intent.putExtras(bundle); //将Bundle对象添加到Intent对象中
startActivityForResult(intent, CODE); //启动新的Activity
}
}
}
final public int CODE= 0x717; //定义一个请求码常量
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==CODE && resultCode==CODE){
((EditText)findViewById(R.id.pwd)).setText(""); //清空密码编辑框
((EditText)findViewById(R.id.repwd)).setText(""); //清空确认密码编辑框
}
}
2.接收端Activity
onCreate()方法中:
final Intent intent=getIntent(); //获取Intent对象
Bundle bundle=intent.getExtras(); //获取传递的数据包
TextView pwd=(TextView)findViewById(R.id.pwd); //获取显示密码的TextView组件
pwd.setText("密码:"+bundle.getString("pwd")); //获取输入的密码并显示到TextView组件中
Button button=(Button)findViewById(R.id.back); //获取“返回上一步”按钮
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
setResult(0x717,intent); //设置返回的结果码,并返回调用该Activity的Activity
finish(); //关闭当前Activity
}
});