代码之家  ›  专栏  ›  技术社区  ›  JRL

如何访问首选项屏幕的所有子项?

  •  0
  • JRL  · 技术社区  · 14 年前

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

    2 回复  |  直到 14 年前
        1
  •  3
  •   Cristian    14 年前

    现在无法测试…但我会尝试这样的方法:

    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);
        }
    }
    
        2
  •  2
  •   JRL    14 年前

    找到了一个简单的方法——对我的用例来说足够了——那就是清除首选项。如果将上下文传递给静态方法,则可以执行此操作:

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