我已经使用了一些首选项,例如EditTextPreference
,等等,它们都可以工作,但是现在我需要使用RingtonePreference
,它不能正常工作。这是非常简单的代码:
<RingtonePreference
android:key="my_ringtone_key"
android:title="Select ringtone"
/>
当我单击此首选项时,id会打开对话框以选择铃声,但不会保存它。我的意思是,我选择了铃声,按“确定”,然后再次单击此首选项,仍然没有选择铃声。
如果我尝试从代码中获取价值,例如:
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
对您有用,请添加评论。