java - 将活动结果传递给正确的片段
问题描述
我在视图寻呼机中有几个片段。其中一些可以触发附加文件或拍照的方法。目前从片段中,我正在从活动调用方法以获取文件(文件选择器意图)或拍照(相机意图),在 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;
}
解决方案
这个对我有用; 在我的应用程序中,我将多张照片上传到服务器,从片段中的图库中选择照片并将结果活动传递给片段。
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);
}
推荐阅读
- node.js - 找不到模块'source-map-support/register
- python - Keras:模型预测,检查输入形状时出错
- javascript - 如何用相同代码的扩展片段替换代码字符串中的“特殊”字符?
- docker - Docker-Compose:如何等待其他服务准备好?
- r - 在 dplyr 中的列表中求和
- javascript - JSX 错误:“JSX.IntrinsicElements”类型上不存在属性
- typescript - 为什么 TypeScript 在嵌套对象中不能推断出泛型类型?
- javascript - 如何使用 vanilla JS 检查元素是否具有多个类
- typescript - SPFX - 长时间间隔后刷新 Web 部件
- python - 将行中的值附加到新列中?