Android startActivityForResult on ActivityResult在片段中;不叫;
当我打电话时:Android startActivityForResult on ActivityResult在片段中;不叫;,android,android-fragments,Android,Android Fragments,当我打电话时: private void openGallery() { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); getActivity().startActivityForResult(Intent.createChooser(intent, "Select Picture"),
private void openGallery() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
getActivity().startActivityForResult(Intent.createChooser(intent, "Select Picture"),
PICK_IMAGE);
}
不要执行以下操作:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
我还实施了以下措施:
// @Override
// public void startActivityForResult(Intent intent, int requestCode) {
// // TODO Auto-generated method stub
// super.startActivityForResult(intent, requestCode);
//
// }
但仍然不起作用
我有这个结构ActionBarAcitivy->FragmentPagerAdapter->Fragment->这里是startActivityForResult“Fragment”
注意此代码扩展了“片段”
此帖子无法解决强>
体验后注意:
不存在任何形式,我花了3天时间处理这个问题,并且-1个片段,我将所有内容都放在一个活动中(actionbaractivity) 我不会费心使用很多片段,程序员不能做的是浪费时间发现虚构的代码。
这条线就是问题所在:
getActivity().startActivityForResult(Intent.createChooser(intent, "Select Picture"),
PICK_IMAGE);
相反,应该对片段而不是活动调用此方法。这允许系统将响应路由回正确的片段。因此,只需将其替换为以下内容:
startActivityForResult(Intent.createChooser(intent, "Select Picture"),
PICK_IMAGE);
链接到文档以供参考:有几个关键概念需要记住:
- 嵌套片段无法处理onActivityResult,只有一级片段(即直接添加到活动的片段)可以处理详细信息
- 您必须使用fragment.startActivityForResult在onActivityResult中返回结果。如果您执行activity.startActivityForResult,您将永远无法在片段中获得结果
- 在onActivityResult方法中(all)始终调用super.onActivityResult
super.onActivityResult()
,否则这可能会干扰此操作。我看到了子片段的问题,是不是碰巧发现了此片段?是的,我有@override+super.onActivityResult,而不是工作检查onActivityResult()您可以调试的片段活动…可能它正在被消耗…或者如果它是一个动态片段(未在XML中声明),则可能是该片段在返回时不再附加到该活动…不确定,必须检查该片段的生命周期。片段活动???????我从不谈论活动,我有“Fragment”扩展了“Fragment”,需要调用ActivityResult()@user3718720您添加了权限吗?我需要什么权限?在我的另一个“活动”中效果很好,但在我的“片段”中不工作不存在任何形式,我花了3天时间处理这个问题,-1个片段,我将所有内容都放在一个活动中(actionbaractivity)