我一直试图解决这个问题2天了,我完全不知道如何修复它。
基本上,我有一个服务,它监听ListView中的更改(通过BroadcastReceiver),并通过editor.putInt(“SeekBarPreference”,value).commit();相应地更新几个SeekBarPreferences。现在一切都按预期工作,它返回正确的值,但它不会在视觉上改变seekbarpreferences。如果我重新启动服务(按回然后再单击相关选项),它们将更改为正确的位置。或者即使我旋转设备,他们也会改变。 我想我的问题是;有没有办法手动“刷新”首选项的“外观”?
谢谢!
(我知道这里有类似的问题,但没有一个真的有解决方案)
答案 0 :(得分:0)
您是否在该视图上尝试invalidate()
或requestlayout()
了?
答案 1 :(得分:0)
我有时会依赖的一种蹩脚方式是重新启动活动。为当前活动创建意图并启动它。两行代码。不知道它是否是一个解决您问题的实用解决方案,但它适用于我的各种情况。
答案 2 :(得分:0)
通过清除首选项来管理以在ponSharedPreferenceChanged侦听器上更新搜索栏
PreferenceScreen prefScreen = getPreferenceScreen();
prefScreen.removeAll();
再次加载xml
addPreferencesFromResource(...etc.
然后重新发送广播以更新所有内容
它有效,但不是很优雅。感谢大家的帮助!