有关startActivityForResult在fragment中的使用小技巧

这篇博文适合不太会用startActivityForResult的程序员观看,大神就请绕道了。。。


记得是去年有个需求大概是这样的(当时我还是个小菜鸟,不能体会startActivityForResult的用法和对getActivity()这个方法的理解,走了很多代码弯路)

有关startActivityForResult在fragment中的使用小技巧_第1张图片


我说下我当时的做法:就是通过flag标记和构造方法来实现的。当时是各种判断flag。而且界面跳转体验明显不是那么顺畅。随着开发经验的增多。这个需求其实很简单,没那么复杂,各种if判断flag什么的。就可以用startActivityForResult来搞定。


说到这里,先了解一下getActivity()这个玩意(当时我就知道反正在fragment中就用这个,也不知道为什么)。这个就是得到当前fragment所依附的这个activity实例

所以这里只需要在A_Fragment中的button点击事件中跳转写上

 getActivity().startActivityForResult(new Intent(getActivity(), HomeActivity.class),1);

注意这里是getActivity().startActivityForResult.


最后在MainActivity中重写OnActivityResult方法就可以了。


至于startactivityforresult回传参数的这些基本用法相信大家不陌生了。这里不多解释。网上一大堆。


这里其实我更加建议使用EventBus这个东西!!!





你可能感兴趣的:(Android开发常见问题)