Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android startActivityForResult on ActivityResult在片段中;不叫;_Android_Android Fragments - Fatal编程技术网

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)