Android 铃声首选项不保存选择
我的应用程序中有一个铃声首选项,但当我选择想要的铃声时,它不会存储在首选项值中。我可以再次单击首选项,但它不会显示我刚才选择的内容 这是XMLAndroid 铃声首选项不保存选择,android,preferences,ringtone,Android,Preferences,Ringtone,我的应用程序中有一个铃声首选项,但当我选择想要的铃声时,它不会存储在首选项值中。我可以再次单击首选项,但它不会显示我刚才选择的内容 这是XML <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="Audio Setti
<?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>
我也遇到了同样的问题,但当我阅读偏好时,我回顾了我的代码:
SharedPreferences settings =
context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
这是错误的,正确的解决方案是:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
希望能有帮助我也有同样的问题。在AndroidManifest.xml文件中,我的首选项活动设置为
noHistory=“true”
。一旦我删除了它,一切都正常了。我最终手动保存了它,在PreferenceClickListener上注册了一个,并得到了结果我通过删除android:launchMode=“singleInstance”
和android:excludeFromRecents=“true”来解决这个问题
来自AndroidManifest.xml上的设置活动条目(设置其中一个或两个选项将导致相同问题)。这似乎是Android上的一个bug。如果您覆盖了onActivityResult()
并且忘记调用super.onActivityResult()
,您也可以看到这个问题
请看我使用的解决方案是由Udo Hold提供的,我只想添加一件事,我必须删除launchMode=“singleInstance”
,我现在使用的是android:launchMode=“singleTask”
,一切正常。为了防止其他人需要启动模式,这个模式对我有效。我唯一能想到的是,你在其他PREF中使用了SMS\u PREF\u声音,这会覆盖你的选择。除此之外(除非你在PreferenceActivity中做了一些事情),绝对没有理由不存储它。我也尝试过更改键,但它仍然无法保存它原来是这样的!非常感谢。