我有一个PreferenceActivity与我的应用程序的设置,我想刷新活动,如果一些偏好改变了.
例如,我有一个复选框,负责我的布局中的addtional选项卡,当选中复选框时,必须显示选项卡.为了捕获这个事件,我使用了OnSharedPreferenceChangeListener.但是这个监听器听每次点击这个复选框并且每次都做一些事情(你的逻辑),即使设置确实没有改变,每次点击也是如此.我想只在设置真的改变时刷新我的活动.如果之前是“OFF”并且现在变成“ON”在这种情况下我想要刷新,但是如果我改变OFF – ON – OFF我不想刷新.
如何捕捉真正的变化以及如何在活动中处理这个问题?
谢谢!
解决方法:
How to catch really changes and how to handle this in activity?
步骤1:在主活动上实现OnSharedPreferenceChangeListener.
步骤#2:维护一个布尔数据成员,最初为false,只要您感兴趣的复选框发生更改,就可以切换.
步骤3:在onStart()或onResume()中,如果布尔数据成员为true,则刷新活动并将数据成员设置为false.