Fragment中调用startActivityForResult()返回值的实现

来源:互联网 发布:卫生网络直报系统网址 编辑:程序博客网 时间:2024/05/16 07:35

Fragment中调用startActivityForResult()返回值,出现了各种问题,终于成功,记录如下:

一、Fragment中的调用方法,Intent中context参数为getActivity(), 注意startActivityForResult()的前面为空

<span style="font-size:18px;">        <span style="font-size:14px;">Intent intent = new Intent(getActivity(), TenderActivity.class);         startActivityForResult(intent, 1000);</span></span>

二、被调用的Activity的结束方法

<span style="font-size:18px;">        @Overridepublic void onBackPressed() {Intent intent = new Intent();setResult(RESULT_OK, intent);finish();}</span>

三、Fragment中重写onActivityResult(),注意super


<span style="font-size:18px;">        @Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data){super.onActivityResult(requestCode, resultCode, data);  //这个super可不能落下,否则可能回调不了switch(requestCode){case 1000:if(resultCode == getActivity().RESULT_OK){Logg.d("TAG", "收到返回值了收到了了子了了了了了了子了了了了了了了");}break;case 1:if(resultCode == getActivity().RESULT_OK){Logg.d("TAG", "收到返回值了收到了了子了了了了了了子了了了了了了了");}break;}}</span>


四、 注意fragment的父activity中是否重写了onActivityResult方法,回调是要先经过父activity中的onActivityResult方法的,不要被它吃掉

1 0
原创粉丝点击