Apuntes de como crear un cuadro de diálogo para pedir al usuario restablecer las preferencias por defecto.
El flujo de acción, es a partir de un icono en la barra de herramientas que al ser pulsado muestre un diálogo de petición de reseteo de las preferencias por defecto, con dos botones, uno cancelar el diálogo y el otro con el texto reset, que al ser pulsado se restablece las preferencias por defecto.

Anadir botón en barra de herramientas
en el archivo que se extiende de PreferenceFragmentCompat en su onViewCreated
val menuHost: MenuHost = requireHost() as MenuHost
menuHost.addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
// Add menu items here
menuInflater.inflate(R.menu.preferences_menu, menu)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
// Handle the menu selection
return when (menuItem.itemId) {
R.id.action_settings_default_restore -> {
showDialogResetDefaultPreferences()
true
}
else -> false
}
}
}, viewLifecycleOwner, Lifecycle.State.RESUMED)
Diálogo resetear preferencias
Diálogo que se mostrará en pantalla al restablecer por defecto
private fun showDialogResetDefaultPreferences() {
AlertDialog.Builder(requireActivity())
.setTitle(R.string.prefs_settings_default_restore_title)
.setMessage(R.string.prefs_settings_default_restore_summary)
.setPositiveButton(R.string.prefs_settings_default_reset_btn) { dialog, which ->
//botón OK pulsado
MyApplication.prefs.restoreDefaultPreferences()
requireActivity().recreate()
}
.setNegativeButton(android.R.string.cancel) { _, _ ->
//botón cancel pulsado
}
.show()
}
Recursos
Recursos usados para el cuadro de dialogo para resetear las preferencias de la aplicación
<string name="action_settings_default_restore">Restore defaults</string>
<string name="prefs_settings_default_restore_title">Reset app preferences</string>
<string name="prefs_settings_default_restore_summary">Are you sure reset preferences to their defaults?</string>
<string name="prefs_settings_default_reset_btn">Reset</string>
archivo res/menu/preferences_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings_default_restore"
android:orderInCategory="100"
android:title="@string/action_settings_default_restore"
android:icon="@drawable/ic_round_settings_backup_restore_24"
app:showAsAction="always" />
</menu>