【问题标题】:setFragmentResult and setFragmentResultListener packages not found (Unresolved reference)未找到 setFragmentResult 和 setFragmentResultListener 包(未解决的参考)
【发布时间】:2020-08-24 22:46:20
【问题描述】:

谁能帮助我,我如何将setFragmentResult and setFragmentResultListener 导入到我的项目中?

我已经实现了 'androidx.fragment:fragment-ktx:1.2.5' 但它似乎不是正确的包。

【问题讨论】:

    标签: android android-fragments androidx


    【解决方案1】:

    首先,确保您有 "androidx.fragment:fragment:1.3.0-alpha08" 作为依赖项。这些方法是在1.3.0-alpha04 中添加的,因此请确保您至少拥有该版本。

    然后,这些是导入:

    import androidx.fragment.app.setFragmentResult
    

    import androidx.fragment.app.setFragmentResultListener
    

    【讨论】:

    【解决方案2】:

    截至 21 年 2 月,1.3.0 现已推出。 Source

    implementation 'androidx.fragment:fragment-ktx:1.3.0'
    debugImplementation 'androidx.fragment:fragment-testing:1.3.0'
    

    这应该会解析引用。

    【讨论】:

      【解决方案3】:

      如果您使用的是 java,请尝试以下代码:

      setFragmentResult :

      requireActivity().getSupportFragmentManager().setFragmentResult("request_Key", new Bundle());
      

      setFragmentResultListener:

      requireActivity().getSupportFragmentManager().setFragmentResultListener("request Key", getViewLifecycleOwner(), new FragmentResultListener() {
                  @Override
                  public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle result) {
      
                  }
              });
      

      依赖使用:

      implementation "androidx.fragment:fragment:1.3.0"
      

      【讨论】:

      • 以上内容很有帮助,但我发现我需要使用 getParentFragmentManager() 而不是 requireActivity().getSupportFragmentManager()
      • @Martin :我也看到了 getParentFragmentManager() 但 getSupportFragmentManager() 对我有用。 ^^
      • 这应该相当于 startActivityForResult 吧?如果是这样,那么启动它呢?并且不应该让这个“request_Key”在 Activity 必须处理的所有 Fragment 之间是唯一的吗?
      猜你喜欢
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 2021-08-17
      • 2016-12-14
      • 2020-05-27
      • 2019-11-16
      相关资源
      最近更新 更多