RingtonePreference è sempre nullo :(
-
26-09-2019 - |
Domanda
<?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>
Questa è la mia preferenza xml. Ma,
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.getString("app_ringtone", null);
restituisce sempre null. Io sono il debug su un dispositivo (HTC Wildfire).
Soluzione
Ecco un progetto di esempio che dimostra preferenze di raccolta, tra cui suonerie. Se questo non funziona sul vostro dispositivo, allora ci può essere un problema di compatibilità con il dispositivo.
Altri suggerimenti
Nel mio caso problema era che io overrided onActivityResult in PreferenceActivity e non ha invocato super.onActivityResult (...). Ora funziona bene:
public synchronized void onActivityResult(final int requestCode,
int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
XML Problematica:
<activity android:name="Activity1"
android:label="Activity 1"/>
<activity android:name="Activity2"
android:label="Activity 2" />
<activity android:name="Settings"
android:label="Settings" />
ho cambiato il Android: name = "Activity1" a Android: name =". Activity1" per tutte le attività e al codice iniziato a lavorare. Il codice anche malfunzionamenti se la Android: showSilent = "false" attributo viene incluso nel RingtonePreference può essere questo un bug. Ho capito questo dopo un sacco di tentativi ed errori. Tutte le idee, pls illuminano @Commonsware.
XML di lavoro:
<activity android:name=".Activity1"
android:label="Activity 1"/>
<activity android:name=".Activity2"
android:label="Activity 2" />
<activity android:name=".Settings"
android:label="Settings" />