android 注册成功后返回账号和密码到登录界面,精辟讲解

实现:
1>LoginActivity:
Intent intent = new Intent(this, RegistActivity.class); 
//启动该Activity是为了获取对方回传的数据 
startActivityForResult(intent, REQUEST_CODE_GO_TO_REGIST);
2>RegistAcitivty: 
//finish之前  回传给LoginActivity两个参数 
//调用setResult方法  
//把两个参数设置到intent中即可
Intent data=new Intent();
data.putExtra("name", name);
data.putExtra("pwd", pwd);
setResult(RESULT_OK, data)
finish();
3>LoginActivity:
/** 
 * startActivityForResult()
 * 当RegistActivity  finish()后  将会自动调用
 * 该onActivityResult方法。
 * @param requestCode   请求码
 * @param resultCode 结果码
 * @param data 回传数据
 */

  @Override
 protected void   onActivityResult(int requestCode, int resultCode, Intent data){ 
switch (requestCode) {
case REQUEST_CODE_GO_TO_REGIST:
//判断注册是否成功  如果注册成功
if(resultCode==RESULT_OK){
//则获取data中的账号和密码  动态设置到EditText中
String name=data.getStringExtra("name");
String pwd=data.getStringExtra("pwd");
etName.setText(name);
etPwd.setText(pwd);
}
break;
}

}

注意:当 注册页面 启动模式=singTask, startActivityForResult 会直接调用onActivityResult ,
* 在RegisterActivity -setResult -finish 后,不再调用onActivityResult;
* 解决办法:1,更改 注册页面 lanchMode=standard|singleTop
*  2.监听onNewIntent 注册页面 按照一般跳转 intent 传值,在登录界面 重写 onNewIntent 方法更新 UI

解决办法2:
        注册页面:

Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);

intent.putExtra("name",regName);

intent.putExtra("pwd",regPwd);

startActivty(intent);

  登录页面:
   @Override
protected void onNewIntent(Intent intent) {
// TODO Auto-generated method stub
super.onNewIntent(intent);
//则获取intent中的账号和密码  动态设置到EditText中
String name=data.getStringExtra("name");
String pwd=data.getStringExtra("pwd");
etName.setText(name);
etPwd.setText(pwd);
 
}

你可能感兴趣的:(android)