如何在使用PreferenceFragment时启用/禁用选项菜单

时间:2013-07-23 12:15:22

标签: android android-fragments android-actionbar android-optionsmenu

我的Android应用程序使用溢出菜单进行设置,关于,反馈等。

通过扩展PreferenceFragment提供设置屏幕。

我的最小sdk是14我的目标sdk是17.

当我的用户点击我的溢出菜单中的设置选项并转换到我的偏好设置屏幕时,溢出图标仍然可见,用户可以再次点击它并选择设置,这样可以让他们访问“另一个”首选项屏幕点。

什么方法可以阻止这种情况发生?

当首选项片段可见时,我应该如何禁用溢出菜单? 当用户从首选项片段返回时重新启用它?

1 个答案:

答案 0 :(得分:1)

  1. 创建一个变量以检查首选项片段是否不可见(isPrefsHiddden)。
  2. 如果显示首选项片段(isPrefsHidden == false),请对onPrepareOptionsMenu进行此更改以隐藏选项菜单。
  3. 
    
        @Override
        public boolean onPrepareOptionsMenu (Menu menu) {
            //hide options menu if preference fragment is visible
            return isPrefsHidden;
        }
    
    
    1. 当首选项片段不再可见时,将变量更改为true以再次激活选项菜单。每当更改变量时都必须调用invalidateOptionsMenu(),以便GUI得到适当更新。