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).

War es hilfreich?

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" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top