RingtonePreference est toujours nul :(
-
26-09-2019 - |
Question
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Notifications">
<CheckBoxPreference
android:key="vibration"
android:title="Vibrate"
android:summary="Vibrate phone for notifications" />
<CheckBoxPreference
android:key="play_tone"
android:title="Play Ringtone"
android:summary="Play Ringtone for notifications" />
<RingtonePreference
android:key="app_ringtone"
android:dependency="play_tone"
android:title="Select Ringtone"
android:ringtoneType="notification"
android:showDefault="true"
android:shouldDisableView="true"
android:summary="Pick a Ringtone" />
</PreferenceCategory>
</PreferenceScreen>
Ceci est mon xml préférence. Mais,
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.getString("app_ringtone", null);
retourne toujours null. Je suis mise au point sur un appareil (HTC Wildfire).
La solution
Voici un exemple de projet démontrant les préférences collecte, y compris des sonneries. Si cela ne fonctionne pas sur votre appareil, il peut y avoir un problème de compatibilité avec le périphérique.
Autres conseils
Dans mon problème de cas est que j'overrided onActivityResult dans PreferenceActivity et ne m'a pas fait super.onActivityResult (...). Maintenant, il fonctionne très bien:
public synchronized void onActivityResult(final int requestCode,
int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
XML Problématiques:
<activity android:name="Activity1"
android:label="Activity 1"/>
<activity android:name="Activity2"
android:label="Activity 2" />
<activity android:name="Settings"
android:label="Settings" />
Je changé android: name = "Activité1" android: name = ». Activité1" POUR LES ACTIVITÉS TOUS et le code a commencé à travailler. Le code a également des dysfonctionnements si le android: showSilent = "false" attribut est inclus dans le RingtonePreference peut être est-ce un bug. Je me suis dit cela après beaucoup d'essais et d'erreurs. Toutes les idées, pls éclairent @Commonsware.
XML de travail:
<activity android:name=".Activity1"
android:label="Activity 1"/>
<activity android:name=".Activity2"
android:label="Activity 2" />
<activity android:name=".Settings"
android:label="Settings" />