前言
主要记录2个问题:
1.在Fragment里启动某个Activity后在返回,希望从Fragment下的onActivityResult获取数据,但是不执行的问题。
2.在Fragment里启动某个Activity后在返回,希望从Fragment的根Activity下的onActivityResult获取数据,但是requestCode返回的是随机值。
第一个问题 Fragment下的onActivityResult获取数据,但是不执行的问题
1.首先在Fragment启动Activity时需要使用,Fragment自带的startActivityForResult()方法,不能使用getActivity()的startActivityForResult()
Intent intent = new Intent(getContext(), AddActivity.class); startActivityForResult(intent, 1);
2.如果有在Activity里重写onActivityResult,那么一定要实现super.onActivityResult(requestCode, resultCode, data);否则Fragment的onActivityResult会无法接收到数据
第二个问题 Fragment的根Activity下的onActivityResult获取数据,但是requestCode返回的是随机值
原因是你在Fragment里启动目标Activity时,使用了Fragment自带的startActivityForResult,这里应该使用getActivity()的startActivityForResult(),如下
在Fragment里:
Intent intent = new Intent(getContext(), AddActivity.class); getActivity().startActivityForResult(intent, 1);
End
onActivityResult