gpt4 book ai didi

android - 更改时从 CheckBoxPreference 获取值

转载 作者:行者123 更新时间:2023-11-29 00:43:22 27 4
gpt4 key购买 nike

我正在尝试使用复选框控件创建首选项屏幕。

 <CheckBoxPreference android:summaryOn="@string/mySummaryOn" 
android:summaryOff="@string/mySummaryOff"
android:key="myCB"
android:title="my checkbox"/>

我想在它发生变化时得到这个 bool 值。

在我的应用程序中,我已经完成了如下实现 OnSharedPreferenceChangeListener

public boolean cbValue;
@Override
public void onCreate() {
// The following line triggers the initialization of ACRA
ACRA.init(this);
prefs=PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);
super.onCreate();
}

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
// TODO Auto-generated method stub
//FacebookStatus=prefs.getBoolean("myCB", true);
Toast.makeText(getBaseContext(), "Shared Preference Changes ",Toast.LENGTH_LONG ).show();
}

onSharedPreferenceChanged 方法根本不会被调用,即使我在 pref 屏幕中切换复选框也是如此。

如果每次更改值时我都需要从共享偏好中获取值,我应该怎么做?

最佳答案

而不是使用 OnSharedPreferenceChangeListener:

将以下行添加到您的首选项 Activity 的 onCreate 方法:Preference myCheckbox = findPreference("myCB")然后将监听器应用于 myCheckbox 对象:myCheckbox.setOnPreferenceChangeListener(myCheckboxListener)

监听器代码(作为类字段):

private OnPreferenceChangeListener myCheckboxListener = new OnPreferenceChangeListener() {

public boolean onPreferenceChange(Preference preference, Object newValue) {
// Read new value from Object newValue here
return true;
}
};

关于android - 更改时从 CheckBoxPreference 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8027467/

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