在preferenceChange方法不叫列表preferences更改时 [英] onPreferenceChange method isn't called when Listpreferences changes

查看:219
本文介绍了在preferenceChange方法不叫列表preferences更改时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个preferences活动在我的code。
我想说明敬酒时,在列表preferences不断变化的用户单选按钮。
我用这个code,但它没有作用。 (

I have a Preferences Activity in my code. I want to show a toast when ever user change radio button in a Listpreferences. I used this code but it dose not work. :(

public class PrefsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);   
}
public void onSharedPreferenceChanged(SharedPreferences arg0, String key) {

ListPreference listPreference = (ListPreference) findPreference(key);
listPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        // TODO Auto-generated method stub
        Toast.makeText(PrefsActivity.this, "second", Toast.LENGTH_LONG).show();
        return false;
    }
});
}
}

什么是我的问题?

what is my problem?

推荐答案

更改您的onCreate code为:

Change your onCreate code as:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);  

SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);

}

您不添加registerOnShared preferenceChangeListener至prefsActivity活动

you are not adding registerOnSharedPreferenceChangeListener to PrefsActivity Activity

这篇关于在preferenceChange方法不叫列表preferences更改时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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