如何实现activityA传递数据给activityB,然后activityB再传回参数给activityA呢?
(1)启动Intent时,不使用startActivity(intent),使用startActivityForResult(intent,requestcode),其中requestcode为返回结果码
Intent intent = new Intent(Main.this,Other.class);
intent.putExtra("a",a);
intent.putExtra("b",b);
startActivityForResult(intent,1);
(2)重写方法onActivityResult(int requestcode,int resultcode,Intent intent)
protected void onActivityResult(int requestcode,int resultcode,Intent data){
super.onActivityResult(requestcode,resultcode,data);
if(resultcode==2){
if(requestcode==1){
int three = data.getIntExtra("three",0);
}
}
}
(3)other.activity
Intent intent = getIntent();
int a = intent.getIntExtra("a",0);
int b = intent.getIntExtra("b",0);
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent();
intent.putExtra("three",three);
setResult(2,intent);
finish();
}
}
其中Other.activity中,setResult(resultcode,intent)方法的第一个参数可设为大于1的任意数,与main.activity.java判断的resultcode一致。