【问题标题】:Android how to filter which preferences are displayedAndroid如何过滤显示哪些首选项
【发布时间】:2015-03-02 11:20:32
【问题描述】:

我有 2 个偏好页面。根据首选项页面“一”上显示的复选框,我想显示 CheckBoxPreference 或不在页面“二”上显示它。我知道我应该在页面“二”的活动中添加一种方法来处理页面“一”中的复选框是否被选中。但我不知道如何引用该复选框。

【问题讨论】:

    标签: android sharedpreferences preferences checkboxpreference


    【解决方案1】:

    通过以编程方式获取对复选框的引用来保存复选框的状态,将其状态保存为首选项,将其传递给意图(通过intent.putExtras();)或将其保存在 SharedPreferences 中,然后在第二个活动中检查 CheckBoxPreference.isChecked () 然后有条件地加载首选项。更多信息请查看here

    【讨论】:

    • 你能提供一个如何做到这一点的例子吗?我的问题是我不知道如何从 xml 中引用 CheckBoxPreference。
    • 您引用 CheckBoxPreference 的方式与引用 XML 中定义的任何其他对象的方式相同,例如:CheckBoxPreference checkBox = (CheckBoxPreference) findViewById(R.id.yourCheckBox)。
    【解决方案2】:

    您可以使用名为 StaticValues 的类并添加一个布尔变量。

    public static boolean isCheckBoxChecked;
    

    选中复选框时,将此变量设置为 true:

    StaticValues.isCheckBoxChecked = true;
    

    当您显示偏好页面 2 时,您可以检查此变量并决定是否显示下一个复选框。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多