RingtonePreference ist immer null :(
-
26-09-2019 - |
Frage
<?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>
Dies ist meine Präferenz xml. Aber,
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.getString("app_ringtone", null);
gibt immer null. Ich bin das Debuggen auf einem Gerät (HTC Wildfire).
Lösung
Hier ist ein Beispielprojekt Sammeln Präferenzen zeigen, einschließlich Klingeltöne. Wenn dies nicht funktioniert auf dem Gerät, dann kann es ein Kompatibilitätsproblem mit dem Gerät sein.
Andere Tipps
In meinem Fall Problem war, dass ich in overrided PreferenceActivity onActivityResult und tat nicht invoke super.onActivityResult (...). Nun, es funktioniert:
public synchronized void onActivityResult(final int requestCode,
int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
Problematische XML:
<activity android:name="Activity1"
android:label="Activity 1"/>
<activity android:name="Activity2"
android:label="Activity 2" />
<activity android:name="Settings"
android:label="Settings" />
Ich habe die android: name = "Activity1" android: name =“. Activity1" für alle Aktivitäten und den Code zu arbeiten begann. Der Code auch Störungen, wenn die Android: showSilent = "false" Attribut wird in der mitgelieferten RingtonePreference kann dies ein Fehler ist. Ich dachte, das nach einer Menge von Versuch und Fehler. Irgendwelche Ideen, pls erleuchten @Commonsware.
Arbeits XML:
<activity android:name=".Activity1"
android:label="Activity 1"/>
<activity android:name=".Activity2"
android:label="Activity 2" />
<activity android:name=".Settings"
android:label="Settings" />