天天看点

从一个activity回退到另一个activity并返回值

从aActivity跳转到bActivity去,并在bActivity做相关的处理,当相关的事情做完之后就回到aActivity,或许还同时返回一些bActivity处理完的数据交给主aActivity处理。

aActivity:

Intent intent = new Intent(aActivity.this, bActivity.class);
activity.startActivityForResult(intent, 0);

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

   if (requestCode == 0 && resultCode == Activity.RESULT_OK {
        bean= data.getExtras().getParcelable("data");
        //TODO
    }

}
           

bActivity: 在 bActivity回退带aActivity之前,也就是bActivity调用 finish()时

Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putParcelable("data", bean);
intent.putExtras(bundle);
setResult(RESULT_OK, intent);
finish();
           

requestCode: 表示的是启动一个Activity时传过去的requestCode值,即上面 aActivity接收值时设置的0 resultCode:表示的是启动后的Activity回传值时的 bActivity值,即 Activity. RESULT_OK bean:为回传的数据,如果是对象的话,bean一定要被序列化才行 即public class Bean implements Parcelable {} 序列化相关链接:http://blog.csdn.net/qq_26607985/article/details/52875115

继续阅读