gpt4 book ai didi

java - 更改首选项后执行代码

转载 作者:行者123 更新时间:2023-12-01 11:41:37 24 4
gpt4 key购买 nike

我知道我可以获得 Preference.OnPreferenceChangeListener如果我想在 SharedPreferences 中更改首选项之前执行一些代码。

我正在编写一个从互联网获取一些文本的应用程序。它可以用多种语言来实现这一点,用户可以使用Preference来选择他想要查看的语言。当数据更改时,我需要使用新语言再次获取文本。

为了获取此文本,我使用了静态方法,该方法不将语言作为参数(它使用 SharedPreferences 获取它本身)。这意味着从 OnPreferenceChangeListener 调用此方法对我没有帮助,因为此时首选项尚未保存。

首选项更改后,我可以使用不同的监听器来执行代码吗?或者我应该添加代码以在监听器中手动将更改提交到 SharedPreferences

最佳答案

重写registerOnSharedPreferenceChangeListener()中的onSharedPreferenceChanged()方法并调用其中的静态方法。保存首选项后会调用它。

这样使用:

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
sharedPreferences.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
// Do your stuff
}
});

关于java - 更改首选项后执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29476741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com