【问题标题】:Hide a preference in a PreferenceActivity在 PreferenceActivity 中隐藏首选项
【发布时间】:2011-11-03 08:19:51
【问题描述】:

是否可以在 PreferenceScreen 中隐藏首选项?我不需要禁用它,它必须是不可见的(有时)

重要提示:我需要保持最低 API 级别 7+

【问题讨论】:

    标签: java android sharedpreferences android-preferences


    【解决方案1】:

    如果您的注销按钮(首选项)在 PreferenceScreen 中,请执行以下操作:

    PreferenceScreen screen = getPreferenceScreen();
    Preference logout = findPreference("logout");
    if(screen != null && logout != null)
      screen.removePreference(logout);
    

    否则,如果您的注销按钮 (Preference) 位于 PreferenceCategory 中(位于 PreferenceScreen 内),请执行以下操作:

    PreferenceCategory category = (PreferenceCategory) findPreference("category_name");
    Preference logout = findPrefence("logout");
    if(category != null && logout != null)
      category.removePreference(logout);
    

    您可以输入任何您的首选项名称,例如用于注销首选项,如果您有另一个首选项(例如 CheckBoxPreference),则需要在 findPreference 之前转换该特定首选项。

    【讨论】:

      【解决方案2】:

      类似的东西应该可以工作:

      Preference p = findPreference("your_preference_key");
      getPreferenceScreen().removePreference(p);
      

      【讨论】:

        【解决方案3】:

        PreferenceScreen scr = getPreferenceScreen();

        如果(scr!=null)

             scr.removePreference(findPreference("preferenceKey"));
        

        【讨论】:

          【解决方案4】:

          如果您使用支持库 v7 Preference,则可以使用 setVisible 方法。它完全满足您的需求。

          【讨论】:

            【解决方案5】:

            您现在可以使用 AppCompat 库直接在 xml 中执行此操作。

            https://stackoverflow.com/a/54154665/114549

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-12-23
              • 2011-11-17
              • 1970-01-01
              • 1970-01-01
              • 2011-11-19
              • 2016-11-02
              相关资源
              最近更新 更多