两个Activity间的交互startActivityForReuselt(intent,int);
OneActivit界面:
点击跳转到第二个Activity按钮时跳转到界面2,并在控制台输出由界面1跳转到界面2
TwoAcrivity界面:
点击返回1,返回到oneactivity,并在控制台输出one
点击返回2,返回到oneactivity,并在控制台输出two
TherrActivity界面:
点击返回,返回到oneactivity,并在控制台输出threeActicity
//界面代码就省略了
OneActivity主要代码:
public void go_twoActivity(View v)
{
Strings="由界面1跳转到界面2";
Intentit=newIntent(this,TwoActivity.class);
//携带向界面2传的值,并设置标记码为1,与后面onActivityResult()方法中的requestCode相对应
it.putExtra("toTwoActivity",s);
startActivityForResult(it,1);
}
public void go_threeActivity(Viewv){
Intentit=newIntent(this,ThreeActivity.class);
//跳转到界面3,并设置标记码为2
startActivityForResult(it,2);
}
@Override
protected void onActivityResult(int requestCode,int resultCode, Intent
intent) {
// super.onActivityResult(requestCode,resultCode, arg2);
//根据requestCode判断由哪个界面返回的,与上面startActivityForResult(intent,int);中的第二//个参数相对应
switch (requestCode) {
case 1:
//由界面2跳转过来并判断由哪个按钮返回的,该回调方法中的第二个参数resultCode与TwoActivity中的//setResult(10,intent)方法的第一个参数相对应
switch(resultCode) {
case10:
Bundleb= intent.getExtras();
Strings=b.getString("back");
System.out.println(s);
break;
case11:
Bundlec= intent.getExtras();
Strings1=c.getString("backtwo");
System.out.println(s1);
break;
}
break;
case 2:
System.out.println("threeActicity");
break;
}
TwoActivity主要代码:
protected voidonCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.two);
Intentit=getIntent();
Bundles=it.getExtras();
Stringstr=s.getString("toTwoActivity");
System.out.println(str);
}
public void fanhui(View v){
Intent intent = new Intent();
intent.putExtra("back","one");
setResult(10,intent);
this.finish();
}
public void fanhuitwo(View v){
Intentit = newIntent();
it.putExtra("backtwo","two");
setResult(11,it);
this.finish();
}
ThreeActivity主要代码:
public void fan_hui(View v){
this.finish();
}