Как отслеживать изменения Settings_fragment?

У меня есть settings_fragment. Вот его layout

<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/settings_layout">

<PreferenceCategory app:title="@string/messages_header">

    <SwitchPreferenceCompat
        app:key="switch_cheating"
        app:title="@string/enable_cheating" />

    <EditTextPreference
        app:key="cheating_text"
        app:title="@string/cheat_number"
        android:inputType="number"
        app:useSimpleSummaryProvider="true" />

</PreferenceCategory>

<PreferenceCategory app:title="@string/history_header">

    <SwitchPreferenceCompat
        app:key="switch_history"
        app:title="@string/enable_history" />

</PreferenceCategory>

<PreferenceCategory app:title="@string/dark_theme">

    <SwitchPreferenceCompat
        app:key="switch_theme"
        app:title="@string/enable_theme" />

</PreferenceCategory>

Также у меня есть SettinsFragment.kt

class SettingsFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
    setPreferencesFromResource(R.xml.root_preferences, rootKey)
    addPreferencesFromResource(R.xml.root_preferences)
}

}

MainActivity.kt (активити, которому принадлежит фрагмент)

class MainActivity : AppCompatActivity() {
lateinit var navController: NavController

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    navController =
        (supportFragmentManager.findFragmentById(R.id.nav_host) as NavHostFragment).navController
}

}

В итоге, как мне получить в MainActivity лисенеры, сообщающие о переключении чего-то в Settigs_fragment?


Ответы (0 шт):