首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android SwitchPreference不工作

Android SwitchPreference不工作
EN

Stack Overflow用户
提问于 2017-07-08 07:31:10
回答 2查看 1.6K关注 0票数 0

我试图使用SharedPreferences检索SwitchPreference的值,但它不起作用。我使用SwitchPreference,这样用户就可以打开/关闭通知,但是它会显示通知,而不管它的值是什么。这是密码。

NotificationUtils.java

代码语言:javascript
复制
SharedPreferences preferences = context.getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
    if (preferences.getBoolean("notification_key", true)) {
        notificationManager.notify(NOTIFICATION_ID + rowId, notBuilder.build());
    }

preferences.xml

代码语言:javascript
复制
<SwitchPreference
    android:contentDescription="Turn notifications on/off"
    android:defaultValue="true"
    android:key="notification_key"
    android:summaryOff="Off"
    android:summaryOn="On"
    android:title="Notifications" />

我还在SettingsFragment.java中重写和注册了SettingsFragment.java侦听器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-09 06:38:34

我解决了它,实际上这个值不是切换的,在设置屏幕上开关是关闭的,但是这个值仍然是默认的。通过在OnPreferenceChangeListener中设置新值来解决这个问题,这是可行的。

票数 0
EN

Stack Overflow用户

发布于 2017-07-08 07:43:16

试着替换

代码语言:javascript
复制
SharedPreferences preferences = context.getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);

使用

代码语言:javascript
复制
PreferenceManager.getDefaultSharedPreferences(context);

我相信您正在尝试从错误的"notification_key"中检索SharedPreferences,这就是为什么它总是使用true的默认值并显示通知。

编辑:您可以检查使用的SharedPreferences是否包含contains()方法的"notification_key“键。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44983709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档