实现:
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
* 在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);
}
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);
}