天天看點

從一個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

繼續閱讀