Pregunta

<?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>

Esta es mi preferencia XML. Pero,

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.getString("app_ringtone", null);

siempre devuelve un valor nulo. Estoy de depuración de un dispositivo (HTC Wildfire).

¿Fue útil?

Solución

Aquí es un proyecto de ejemplo que demuestra preferencias de recolección, incluyendo tonos de llamada. Si esto no funciona en el dispositivo, entonces puede haber un problema de compatibilidad con el dispositivo.

Otros consejos

En caso de que mi problema era que yo overrided onActivityResult en PreferenceActivity y no invocó super.onActivityResult (...). Ahora funciona bien:

public synchronized void onActivityResult(final int requestCode,
    int resultCode, final Intent data) {

    super.onActivityResult(requestCode, resultCode, data);
}

Problemática XML:

<activity android:name="Activity1" 
    android:label="Activity 1"/>
<activity android:name="Activity2" 
    android:label="Activity 2" />
<activity android:name="Settings"  
    android:label="Settings" />

Me cambió el android: name = "Actividad1" android: name =". Actividad1" PARA TODAS LAS ACTIVIDADES y el código comenzó a trabajar. El código también un mal funcionamiento si el Android: showSilent = "false" atributo se incluye en el RingtonePreference puede ser esto es un error. Me di cuenta de esto después de un montón de prueba y error. Cualquier idea, pls iluminan @Commonsware.

XML de trabajo:

<activity android:name=".Activity1" 
    android:label="Activity 1"/>
<activity android:name=".Activity2" 
    android:label="Activity 2" />
<activity android:name=".Settings"  
    android:label="Settings" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top