gpt4 book ai didi

android - 我的首选项中有一个搜索栏来更新屏幕亮度。有没有办法刷新 UI 以查看实时更改?

转载 作者:搜寻专家 更新时间:2023-11-01 09:09:52 24 4
gpt4 key购买 nike

搜索栏在任何地方都可以正常工作,但我希望看到在该首选项屏幕中进行更改时发生的更改。问题是 seekbar 是一个首选项,因此我无法执行 sharedpreferences 并在 onProgressChanged 方法中更新它。

有什么办法解决这个问题吗?

我这样设置我的亮度:

    SharedPreferences prefs;
prefs = PreferenceManager.getDefaultSharedPreferences(this);
float sb = prefs.getInt("screenBrightness", 1);
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = sb / 100.0f;
getWindow().setAttributes(lp);

但我不能在 onProgressChanged 中使用它,因为该类正在扩展 Preference。

最佳答案

您需要做的是使用 OnSharedPreferencesChanged 监听器,例如 onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)。在您的 PreferenceActivity 中执行此操作:

SharedPreferences.OnSharedPreferenceChangeListener prefChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() { 
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if(key.equals("screenBrightness")) {
//set brightness here
float sb = sharedPreferences.getInt(key, 1);
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = sb / 100.0f;
getWindow().setAttributes(lp);
}
}
};

然后在 onSharedPreferenceChanged 中,您可以使用您一直在使用的键并相应地设置亮度

关于android - 我的首选项中有一个搜索栏来更新屏幕亮度。有没有办法刷新 UI 以查看实时更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9023926/

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