J'essaie de récupérer la valeur de SwitchPreference en utilisant SharedPreferences mais cela ne fonctionne pas. J'utilise SwitchPreference pour que l'utilisateur puisse activer/désactiver les notifications, mais il affiche les notifications, peu importe la valeur. Voici le code.Android SwitchPreference ne fonctionne pas
NotificationUtils.java
SharedPreferences preferences = context.getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
if (preferences.getBoolean("notification_key", true)) {
notificationManager.notify(NOTIFICATION_ID + rowId, notBuilder.build());
}
preferences.xml
<SwitchPreference
android:contentDescription="Turn notifications on/off"
android:defaultValue="true"
android:key="notification_key"
android:summaryOff="Off"
android:summaryOn="On"
android:title="Notifications" />
J'ai aussi enregistré et l'substituée auditeur OnSharedPreferenceChange dans SettingsFragment.java.
J'ai utilisé la méthode getDefaulSharedPreferences (context) mais la même chose se produit, vérifiée avec la méthode contains si la clé existe et que la valeur est true. Lors de l'utilisation de la méthode getBoolean, boolean defValue est fourni et affiche des notifications, s'il est défini sur true quel que soit l'état du commutateur et si defValue est défini sur false, les notifications ne s'affichent pas même si l'état du commutateur est activé. Je ne peux pas comprendre ce qui se passe là-bas. –