【发布时间】:2014-10-10 08:57:00
【问题描述】:
在我的 Android 应用中,我需要设置来选择时间范围(例如 2 到 4 分钟、8 到 12 分钟等)。
为了实现它,我使用了两个 ListPreference 实例,一个选择最小时间,另一个选择最大时间。
由于最大时间不能小于最小时间,我想在用户更改最小时间时更新最大时间列表首选项。
为了实现它,我使用了 Preference.OnPreferenceChangeListner。当用户更改最小时间偏好时,将调用侦听器回调函数,在回调中,我在最大时间 ListPreference 实例上调用 setEntries()、setEntryValues() 和 setValueIndex() .
问题在于,当我执行上述操作时,最长时间偏好的 GUI 不会立即更新。我仍然可以在首选项中看到旧条目。如果我退出设置活动并再次启动设置,我可以看到更新的条目和值。
请告诉我如何解决这个问题。
另外,请建议是否有更好的方法来处理此类设置用例。
谢谢。
【问题讨论】:
-
我认为没有调用监听器。同时提供一些你已经完成的代码。
-
感谢您对帕思的评论。要发布我的代码,我需要对其进行修剪。我去做。但我知道调用了监听器,甚至我在监听器回调中的调用(如 setEntries() 和 setEntryValues() )也成功了。退出并重新启动设置活动后,我可以看到更新的条目。
-
对于正在寻找如何在一个偏好发生变化时更新一个偏好的任何人,请参阅stackoverflow.com/questions/7603633/…。
标签: android settings listpreference