首页 > 解决方案 > 将活动结果传递给正确的片段

问题描述

我在视图寻呼机中有几个片段。其中一些可以触发附加文件或拍照的方法。目前从片段中,我正在从活动调用方法以获取文件(文件选择器意图)或拍照(相机意图),在 onActivityResult 中处理它并希望将此文件传递到正确的片段,但有时它显示为可见片段与应有的不同。我想把它放在一个地方,而不是每个片段中的 onActivityResult,这就是我想把它放到活动中的原因。这是正确的方法还是我该如何正确地做到这一点?

为了澄清我想传递在 onActivityResult 中创建的新对象,以在片段回收器视图中显示某些内容。

我正在使用下面的代码来检查可见片段:

private Fragment getVisibleFragment() {
        FragmentManager fragmentManager = MyActivity.this.getSupportFragmentManager();
        List<Fragment> fragments = fragmentManager.getFragments();
        for (Fragment fragment : fragments) {
            if (fragment != null && fragment.isVisible())
                return fragment;
        }
        return null;
    }

标签: javaandroidandroid-fragments

解决方案


这个对我有用; 在我的应用程序中,我将多张照片上传到服务器,从片段中的图库中选择照片并将结果活动传递给片段。

 GallaryFragment mFragment = new GallaryFragment(); 

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == YOUR_FRAGMENT_CODE) {
        try {
            //Your Selected Data From Gallery
            mFragment.onActivityResult(requestCode, resultCode, data);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    super.onActivityResult(requestCode, resultCode, data);
 }

推荐阅读