场景: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">