复选框preference - onShared preferenceChanged方法没有得到所谓的 [英] CheckBoxPreference - onSharedPreferenceChanged method not getting called

查看:223
本文介绍了复选框preference - onShared preferenceChanged方法没有得到所谓的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一对夫妇复选框preferences 的设置,我的preference类扩展 preferenceActivity 和农具 OnShared preferenceChangeListener
这是我使用,使人民生活选中/取消选中回应什么复选框preferences

 公共无效onShared preferenceChanged(共享preferences P,串K){
    如果(K.equals(复选框pref_KEY_HERE)){
        MyClass.BooleanVariable = P.getBoolean(复选框pref_KEY_HERE,真正的);
    }
}

据我所知道的, onShared preferenceChanged 方法上面甚至从来没有得到所谓的?


解决方案

 复选框preference =(复选框preference)this.find preference(复选框pref_KEY_HERE);复选框preference.setOn preferenceChangeListener(新在preferenceChangeListener(){
    @覆盖
    在preferenceChange公共布尔(preference preference,对象为newValue){
            //做你的工作在这里
            返回true;
        }
    });

I have a couple of CheckBoxPreferences set up, my preference class extends PreferenceActivity and implements OnSharedPreferenceChangeListener This is what I'm using to respond to people checking/unchecking the CheckBoxPreferences:

public void onSharedPreferenceChanged(SharedPreferences P, String K) {
    if (K.equals(CheckBoxPref_KEY_HERE)) {
        MyClass.BooleanVariable = P.getBoolean("CheckBoxPref_KEY_HERE", true);
    }
}

As far as I can tell, the onSharedPreferenceChanged method above is never even getting called?

解决方案

checkBoxPreference = (CheckBoxPreference) this.findPreference("CheckBoxPref_KEY_HERE");

checkBoxPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
            // do your work here
            return true;
        }
    });

这篇关于复选框preference - onShared preferenceChanged方法没有得到所谓的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆