【问题标题】:Replace deprecated setTargetFragment() in PreferencesFragment替换 PreferencesFragment 中已弃用的 setTargetFragment()
【发布时间】:2021-09-14 17:54:01
【问题描述】:

我无法弄清楚如何在下面的代码示例中替换setTargetFragment(),这显然来自我的Preferencesfragment

override fun onPreferenceStartFragment(
    caller: PreferenceFragmentCompat,
    pref: Preference
): Boolean {
    // Instantiate the new Fragment
    val args = pref.extras
    val fragment = supportFragmentManager.fragmentFactory.instantiate(
        classLoader,
        pref.fragment
    ).apply {
        arguments = args
        setTargetFragment(caller, 0) // <-- DEPRICATED CODE
    }

    // Replace the existing Fragment with the new Fragment
    supportFragmentManager.beginTransaction()
        .replace(R.id.settings, fragment)
        .addToBackStack(null)
        .commit()
    title = pref.title
    return true
}

对于我的 Android Studio 知识水平来说,未知数太多了!该参考资料有所帮助,但仍然感到困惑: How to replace setTargetFragment() now that it is deprecated

【问题讨论】:

    标签: android-fragments android-preferences


    【解决方案1】:

    好吧,显然这可行,但我不确定我是否真的了解发生了什么:

    override fun onPreferenceStartFragment(
        caller: PreferenceFragmentCompat,
        pref: Preference
    ): Boolean {
        // Instantiate the new Fragment
        val args = pref.extras
        val fragment: Fragment = supportFragmentManager.fragmentFactory.instantiate(classLoader, pref.fragment)
        fragment.arguments = args
        supportFragmentManager.beginTransaction().replace(R.id.settings, fragment).addToBackStack(null).commit()
        supportFragmentManager.setFragmentResultListener("requestKey", fragment) { _, _ ->   }
    return true
    }
    

    【讨论】:

    • 原来这行:supportFragmentManager.setFragmentResultListener("requestKey", fragment) { _, _ -&gt; } 是多余的。
    • 为什么你认为.setFragmentResultListener() 是多余的?
    • 当我注释掉这一行时它仍然有效。
    • 您是否将侦听器设置在其他位置?最近是what I implemented
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2021-09-03
    • 1970-01-01
    相关资源
    最近更新 更多