`
jianweicao
  • 浏览: 119720 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Fragment 不响应 onActivityResult方法

 
阅读更多

在使用fragment 和 fragmentActivity组合,调用startActivityForResult方法可能没有响应,还不知道问题出在哪里。现梳理一下正确的调用方式。

 

第一种情况:

fragment.java 中

getActivity().startActivityForResult(intent,1001);

 这种情况下fragmentActivity下的onActivityResult方法被调用。fragment中的onActivityResult不会被调用。

第二种情况:

fragment.java 中

startActivityForResult(intent,1001);

 这种情况下fragmentActivity下的onActivityResult方法被调用,同时注意的是如果fragmentActivity下的onActivityResult方法调用了super.onActivityResult方法,fragment中的onActivityResult也会被调用。

 

最后,一般情况下使用第二种情况,且不重载fragmentActivity下的onActivityResult方法,除非fragment和activity有互动。出现标题现象的原因大多是重载fragmentActivity下的onActivityResult方法但是没有调用super.onActivityResult方法

分享到:
评论

相关推荐

    fragment俩种管理方式

    同时,Fragment可以通过onActivityResult()方法处理来自Activity的结果。 六、Fragment的保存和恢复 当Activity因配置更改(如屏幕旋转)而重建时,已添加的Fragment不会被重新创建,但它们的状态需要保存和恢复。...

    Fragment初步使用,添加两个fragment

    Fragment的设计初衷是为了更好地适应大屏幕设备如平板电脑,但随着时间的发展,它在手机应用开发中也变得不可或缺,特别是在创建复杂的、多视图的应用界面时。 ### Fragment的基本概念 1. **Fragment生命周期**:...

    fragment和activity之间通信

    - 使用`onActivityResult()`方法:当Fragment需要启动一个新的Activity并等待结果时,可以调用`startActivityForResult()`。然后,在Activity接收到结果后,通过`onActivityResult()`回调将结果传回Fragment。 - ...

    android的fragment动态加载

    - Fragment之间可以通过`onActivityResult()`回调、`setTargetFragment()`和`getTargetFragment()`、接口回调或者事件总线等方式进行通信。 7. **保存Fragment状态**: - 当Activity被销毁并重建(例如屏幕旋转)...

    activity调用fragment实例

    - `onActivityResult()`方法可以让Fragment响应Activity的返回结果。 - `setArguments()`和`getArguments()`用于在Fragment创建时传递数据。 5. **Fragment的动态加载** - 动态加载Fragment通常是在运行时根据...

    fragment使用完整例子

    这个压缩包提供的"5.7"可能是指一个示例项目,包含了关于Fragment的完整代码实现和详细注释,这对于学习和理解Fragment的实际用法非常有帮助。通过阅读和运行这个例子,开发者可以深入理解Fragment的用法,以及如何...

    Android Fragment的使用方法(翻译)

    Fragment可以处理自己的输入事件,通过重写`onTouchEvent()`或`onInterceptTouchEvent()`方法,你可以控制Fragment如何响应用户的触摸操作。 总之,Fragment是Android开发中的重要组成部分,它使得构建适应不同...

    Fragment动态添加,同Activity交互

    1. **回调方法**:Fragment可以重写`onActivityResult()`等生命周期方法,当Activity的结果改变时,Fragment可以接收到通知。 2. **Interface**:创建一个自定义接口,Fragment和Activity都实现这个接口,通过调用...

    Android-避免onActivityResult和onRequestPermissionsResult烦恼requestCode的问题

    在Android应用开发中,`onActivityResult`和`onRequestPermissionsResult`是两个重要的回调方法,用于处理从其他Activity返回的结果和权限请求。然而,在大型项目或复杂应用中,管理这些请求码(requestCode)可能会...

    RadioGroup和Fragment

    4. **通信机制**:Fragment可以通过onActivityResult()处理来自Activity的结果,或使用setArguments()和getArguments()传递数据;与Activity之间的通信则可通过接口回调或EventBus等第三方库实现。 5. **布局嵌套**...

    Fragment最简单的实

    例如,通过重写`onActivityResult()`方法,Fragment可以接收Activity的结果。 6. **Fragment的保存和恢复状态**:当设备旋转或其他原因导致Activity重建时,Fragment的状态可能会丢失。你可以通过重写`...

    android+Fragment实现页面的局部跳转

    6. **通信和协调**:Fragment之间或Fragment与Activity之间的通信可以使用`onActivityResult()`、`setArguments()`和`getArguments()`、接口回调、EventBus或LiveData等方法。 通过以上步骤,你就可以在Android平板...

    Activity和Fragment的生命周期

    总的来说,Activity和Fragment的生命周期管理是Android开发中的基础,理解并熟练运用它们的生命周期方法,可以帮助我们编写出更稳定、响应更快的应用。通过不断的实践和学习,开发者能够更好地应对各种复杂场景,...

    fragment,activity之随意切换

    例如,当Fragment的状态发生变化时,可以调用`onActivityResult()`或`onOptionsItemSelected()`等方法,将这些变化通知给Activity。同时,Activity也可以通过接口或事件总线(如Otto或EventBus)向Fragment传递信息...

    Android Fragment

    Fragment并不是Activity的替代品,而是Activity的补充。一个Activity可以包含多个Fragment,每个Fragment代表UI的一部分,比如一个列表、一个对话框或者一个内容视图。Fragment有自己的生命周期,与Activity生命周期...

    fragment+viewpager侧滑效果

    在Android开发中,`Fragment`和`ViewPager`的结合使用是一种常见的实现屏幕滑动切换的布局方式,尤其在创建响应式、多面板的应用界面时。`Fragment`是Android中的一个组件,它允许开发者在活动中添加或移除部分用户...

    Android使用Fragment实现兼容手机和平板的程序demo

    9. **动态加载Fragment**:在某些情况下,我们可能需要根据用户的操作或网络响应动态加载Fragment,这时可以在需要时调用`FragmentManager`的方法添加或替换Fragment。 10. **Fragment的保存和恢复状态**:当...

    android Fragment最简单的例子

    5. **通信与交互**:Fragment可以通过`onActivityResult()`和`onAttach()`等方法与Activity进行通信,也可以通过`FragmentManager`和`FragmentTransaction`来管理其他Fragment的生命周期。此外,Fragment之间还可以...

    activits-fragment

    例如,Fragment可以通过`onActivityResult()`回调响应Activity的结果,或者使用`getActivity()`方法获取到宿主Activity的引用进行直接交互。 **Fragment的回退栈管理** 回退栈允许用户通过按下后退键撤销Fragment...

Global site tag (gtag.js) - Google Analytics