情况一:Activity A 切换到 Activity B
在Activity A中
Intent intent = new Intent(MainActivity.this,Wifitransform.class);
- //设置传递方向
- intent.setClass(A.this,B.class);
- //绑定数据
- intent.putExtra("username1",username);
- intent.putExtra("userpwd1"userpwd);
- /*或者绑定成一捆数据
- Bundle data = new Bundle();
- data.putString("username1",username);
- data.putString("userpwd1",userpwd);
- intent.putExtras(data);
- */
startActivity(intent);
在Activity B中
- Intent intent = getIntent();
- //获取数据
- String username = intent.getStringExtra("username1");
- String userpwd = intent.getStringExtra("userpwd1");
- /* Bundle data = intent.getExtras();
- String username = intent.getString("username1");
- String userpwd = intent.getString("userpwd1"); */
情况二:Activity A 切换到 Activity B,Activity B 退回到 Activity A
在Activity B中
只需在完成操作后想退回的地方添加
finish();
setResult(id, (new Intent()).setAction(title))
就可以了,id表示请求结果码,title表示返回值
在Activity A中
protected void onActivityResult(int requestCode,int resultCode, Intent data){
if( requestCode == ?){
String returnValue = data.getAction();
}
if(resultCode == ?)
{
String returnValue = data.getAction();
}
super.onActivityResult(requestCode, resultCode, data);
}
就可以得到返回值了。除了A.class可以向B.class传值外,B.class也可以返回值
A.class中
this.startActivity(intent);
改为this.startActivityFroResult(intent,1);//1为请求码
B.class中
对传过来的intent对象赋新值
- intent.putExtra("username2",username2);
- intent.putExtra("userpwd2",userpwd2);
- this.setResult(1,intent);
- this.finish();//结束焦点
A.class中重写
- @Override protected void onActivityResult(int requestCode,int resultCode,Intent data){
- super.onActivityResult(requestCode,resultCode,data);
- if(resultCode==1)
- {
- //可从data中取出值
- }
- }
A.class中取出B.class中intent传过来的值