RingtonePreference всегда пусто :( - PullRequest
0 голосов
/ 30 сентября 2010
<?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>

Это мои предпочтения xml. Но,

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

всегда возвращает ноль. Я отлаживаю на устройстве (HTC Wildfire).

Ответы [ 3 ]

3 голосов
/ 18 мая 2012

В моем случае проблема заключалась в том, что я переопределил onActivityResult в PreferenceActivity и не вызывал super.onActivityResult (...). Теперь все отлично работает:

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

    super.onActivityResult(requestCode, resultCode, data);
}
2 голосов
/ 30 сентября 2010

Вот пример проекта , демонстрирующий коллекционные настройки, включая мелодии звонка. Если это не работает на вашем устройстве, возможно, имеется проблема с совместимостью с устройством.

1 голос
/ 11 октября 2010

Проблемный XML:

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

Я изменил android: name = "Activity1" на android: name = ". Activity1" ДЛЯ ВСЕХ ДЕЯТЕЛЬНОСТИ и код начал работать.Код также работает со сбоями, если атрибут android: showSilent = "false" включен в RingtonePreference , возможно, это ошибка.Я понял это после многих проб и ошибок.Любые идеи, пожалуйста, просветите @ Commonsware.

Рабочий XML:

<activity android:name=".Activity1" 
    android:label="Activity 1"/>
<activity android:name=".Activity2" 
    android:label="Activity 2" />
<activity android:name=".Settings"  
    android:label="Settings" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...