Я уже работал с некоторыми настройками, такими как EditTextPreference
и т. д., и все они работают, но теперь мне нужно использовать RingtonePreference
, а он не работает должным образом. Вот очень простой код:
<RingtonePreference
android:key="my_ringtone_key"
android:title="Select ringtone"
/>
Когда я нажимаю на эту настройку, идентификатор открывает диалоговое окно для выбора мелодии звонка, но не сохраняет ее. Я имею в виду, что я выбираю мелодию звонка, нажимаю «ОК», затем снова нажимаю на эту настройку, но мелодия по-прежнему не выбрана.
Если я попытаюсь получить значение из кода, например:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String tmp = prefs.getString("my_ringtone_key", "none");
Тогда tmp
имеют значение по умолчанию "none", что означает, что значение полностью не сохраняется в SharedPreferences
.
НО: если я изменю RingtonePreference
на EditTextPreference
, то есть следующее:
<EditTextPreference
android:key="my_ringtone_key"
android:title="Select ringtone"
/>
Тогда все работает: я могу редактировать значение, значение сохраняется и, конечно, я могу получить его из кода.
Я использую API уровня 7. Я тестировал это на эмуляторе и двух устройствах, SE Xperia Neo и некоторых Acer.
Итак, как заставить RingtonePreference
работать? И, пожалуйста, добавьте комментарий, работает ли RingtonePreference
для вас или нет.