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

È stato utile?

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" />
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top