如果首选项更改则刷新活动

发布于 2024-10-01 10:28:30 字数 331 浏览 8 评论 0原文

我有一个带有应用程序设置的 PreferenceActivity,如果某些首选项发生更改,我想刷新活动。

例如,我有一个复选框负责布局中的附加选项卡,当选中复选框时必须显示选项卡。为了捕获此事件,我使用了 OnSharedPreferenceChangeListener。但是这个监听器监听这个复选框的每次点击,并且每次、每次点击都执行一些操作(你的逻辑),即使设置确实没有改变。仅当设置确实发生更改时,我才想刷新我的活动。如果之前是“OFF”,现在变成“ON”,在这种情况下我想刷新,但如果我更改为OFF - ON - OFF,我不想刷新。

如何捕捉真正的变化以及如何在活动中处理这个变化?

谢谢!

I have a PreferenceActivity with settings for my app and I want to refresh activity if some preferences was changed.

For example I have a checkbox which responsible for addtional tab in my layout, when checkbox is checked tab must be shown. To catch this event I used OnSharedPreferenceChangeListener. But this listener listen every click on this checkbox and do something (your logic) every time, every click even though setting really was not changed. I want to refresh my activity only if setting was really changed. If earlier was "OFF" and now become "ON" in this case I want to refresh, but if I changed OFF - ON - OFF I don't want to refresh.

How to catch really changes and how to handle this in activity?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝戈者 2024-10-08 10:28:30

如何捕捉真正的变化以及如何在活动中处理这个变化?

步骤#1:在您的主要 Activity 上实现 OnSharedPreferenceChangeListener

步骤#2:维护一个 boolean 数据成员,最初为 false,只要您感兴趣的复选框发生更改,您就可以切换该成员。

步骤#3:在 onStart()onResume() 中,如果 boolean 数据成员为 true,则刷新活动并将数据成员设置为 false

How to catch really changes and how to handle this in activity?

Step #1: Implement the OnSharedPreferenceChangeListener on your main activity.

Step #2: Maintain a boolean data member, initially false, which you toggle whenever your checkbox of interest is changed.

Step #3: In onStart() or onResume(), if the boolean data member is true, refresh the activity and set the data member to false.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文