如何访问PreferenceScreen的所有子项?

时间:2010-05-11 16:23:24

标签: android preferences

我正在尝试以编程方式取消选中我应用中CheckBoxPreference的所有PreferenceScreen个孩子。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

现在无法测试......但我会尝试这样的事情:

final ListAdapter adapter = getPreferenceScreen().getRootAdapter();
for (int idx = 0; idx < adapter.getCount(); idx++) {
    Object object = adapter.getItem(idx);
    if(object instanceof CheckBoxPreference){
        ((CheckBoxPreference)object).setChecked(false);
    }
}

答案 1 :(得分:2)

找到一种更简单的方法 - 足以满足我的使用案例 - 即清除首选项。这可以通过静态方法完成,前提是传递给它:

PreferenceManager.getDefaultSharedPreferences(context).edit().clear().commit();