Настройки рингтона не сохраняются - PullRequest
4 голосов
/ 28 сентября 2011

У меня есть предпочтение мелодии звонка в моем приложении, но когда я выбираю нужный тон, он не сохраняется в значении предпочтения.Я могу снова щелкнуть по настройке, и она не покажет то, что я только что выбрал.

, вот XML

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Audio Settings">
        <CheckBoxPreference 
            android:key="SMS_PREF_TTS"
            android:title="Say name of sender"
            android:summary="When a person in your contact list sends you a sms/mms message its says their name"
            android:defaultValue="false">
        </CheckBoxPreference>
        <CheckBoxPreference 
            android:key="SMS_PREF_TTS_MSG"
            android:title="Say Message"
            android:summary="Will say the message of sender from contact list"
            android:dependency="SMS_PREF_TTS"
            android:defaultValue="false">
        </CheckBoxPreference>
        <RingtonePreference 
            android:key="SMS_PREF_SOUND"
            android:title="Change Sound"
            android:ringtoneType="notification"
            android:summary="Select the notification Sound"
            android:dialogTitle="Change Sound"
            android:defaultValue="Silent">
        </RingtonePreference>
</PreferenceCategory>
</PreferenceScreen>

, и странно то, что я просто написал еще один XML для другой части моегоприложение с предпочтением мелодии звонка выглядит так же, и это работает, поэтому я не понимаю.

вот рабочая

<RingtonePreference
        android:key="CAL_PREF_TONE"
        android:title="Default ringtone"
        android:summary="Select default notification ringtone"
        android:ringtoneType="notification"
        android:defaultValue="Silent"
        android:dependency="CAL_PREF_ON">
    </RingtonePreference>

Ответы [ 6 ]

4 голосов
/ 13 августа 2013

Если вы переопределили onActivityResult() и забыли позвонить super.onActivityResult(), вы также можете увидеть эту проблему.

См. RingtonePreference не запускается OnPreferenceChangeListener

3 голосов
/ 20 февраля 2012

У меня была такая же проблема. В файле AndroidManifest.xml мои предпочтения были установлены на noHistory="true". Как только я удалил его, все заработало правильно.

2 голосов
/ 08 апреля 2013

Мне удалось решить эту проблему, удалив android:launchMode="singleInstance" и android:excludeFromRecents="true" из записи активности настроек в AndroidManifest.xml (настройка одного или обоих этих параметров вызовет одну и ту же проблему).Кажется, это ошибка на Android.

2 голосов
/ 20 июля 2012

В итоге я сохранил его вручную, зарегистрировав onPreferenceClickListener и получив результат

1 голос
/ 05 мая 2015

решение, которое я использовал, было предоставлено Удо Хельдом, я просто хотел добавить одну вещь, мне пришлось удалить launchMode="singleInstance", и я сейчас использую android:launchMode="singleTask", и все работает отлично.На всякий случай, если кому-то еще нужен режим запуска, этот работает для меня.

0 голосов
/ 10 февраля 2012

У меня просто была такая же проблема, но потом я пересмотрел свои коды, когда прочитал предпочтение:

SharedPreferences settings = 
context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);

Что не так, правильное решение:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);

Надеюсь, это поможет

...