0

I cannot figure out how to replace setTargetFragment() in the code sample below, which is from my Preferencesfragment obviously:

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
}

Too many unknowns for my level of knowledge of Android Studio! This reference helps, but still confused: How to replace setTargetFragment() now that it is deprecated

JJD
  • 50,076
  • 60
  • 203
  • 339
Dave Enstrom
  • 105
  • 7

1 Answers1

0

Well, apparently this works, but I'm not sure that I really understand what is going on:

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
}
JJD
  • 50,076
  • 60
  • 203
  • 339
Dave Enstrom
  • 105
  • 7
  • Turns out the line: `supportFragmentManager.setFragmentResultListener("requestKey", fragment) { _, _ -> }` is redundant. – Dave Enstrom Sep 14 '21 at 19:52
  • Why do you think `.setFragmentResultListener()` is redundant? – JJD Mar 22 '22 at 10:02
  • It still works when I comment out this line. – Dave Enstrom Mar 23 '22 at 13:39
  • Do you set the listener somewhere else? Here is [what I implemented](https://github.com/EventFahrplan/EventFahrplan/pull/473/commits/de062fe43c9514bc69b636fb6ff86e2a98607d07#diff-5b02f2fa55deec93e32de562bffeb27590c8c4cae169c37638a7d872b416616e) lately. – JJD Mar 23 '22 at 16:34