場景:Fragment跳轉到Activity後要得到返回數據
startActivityForResult (注:此處不能爲 getActivity.startActivityForResult 否則 onActivityResult不會走start時候的Fragment裏面的onActivityResult)
①從Fragment開啓Activity
public class OrderManagerActivity extends Fragment{
.................
Intent intent = new Intent(getActivity() , OrderDetailActivity.class);
intent.putExtra("order_id", list_order.get(arg2).getOrder_id());
intent.putExtra("whichItem", str_flag);
startActivityForResult(intent, flag_position);
.........................
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
int a = resultCode;
int b = resultCode;
super.onActivityResult(requestCode, resultCode, data);
}
}
注意:onActivityReuslt的 requsetCode必須>=0
之前 startActivityForResult(intent,flag_position)的時候沒注意 把flag_position設爲了負數 後來開啓的Activity是可以走到setResult(XX);這一步 但是返回回來之後的Fragmetn不會走 onActivityResult了;所以requestCode必須不爲負數<pre name="code" class="java">
②開啓了Activity後 在Activity退出的時候
setResult(XX)
finish();
<pre name="code" class="java">