如何获得有关CheckBoxPreference状态更改的通知?

时间:2012-06-19 03:18:54

标签: android checkbox sharedpreferences preferenceactivity

我需要动态设置/取消设置侦听器以响应Preference CheckBox用户设置更改。

我看到的一种方法是使用onSharedPreferenceChanged()并检查该复选框的密钥。

但不知怎的,这对我来说效率低下。我正在考虑在从PreferenceActivity派生的类中设置某种监听器的方向。也许是onContentChanged()

您会推荐哪种方法?为什么?

你能指出一个样本工作代码吗?

2 个答案:

答案 0 :(得分:4)

您应该实施OnSharedPreferenceChangeListener。然后设置一个监听器来捕获关键变化:

getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);

您应该能够检索已检查的更改:

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) 
{

}

答案 1 :(得分:0)

这是documentation。使用XML文件,您可以设置在单击窗口小部件时要执行的方法。设置android:onClick = foo将在单击窗口小部件时执行方法foo,并将参数View vv作为已单击的视图传递给它。