当用户在上下文菜单中单击禁用项时,会调用哪个事件?

时间:2010-10-28 16:34:40

标签: android contextmenu

我有按钮,显示上下文菜单。在菜单中有几个项目(其中一些是禁用的 - setEnabled(false))。

当用户点击禁用的项目时会调用哪个事件?它不是onContextItemSelected,也不是onContextMenuClosed。但点击后菜单将关闭。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

在与老师协商后,我解决了这个问题。您可以检查窗口的焦点,然后确定上下文菜单是否已关闭。

所以你必须:

  1. 请使用以下代码。
  2. 创建上下文菜单时,请调用 onPrepareContextMenu()方法。
  3. 代码:

    public class MyActivity extends android.app.Activity {
    
        private boolean contextMenuDisplayed = false;
    
        @Override
        public void onWindowFocusChanged(boolean hasFocus) {
            super.onWindowFocusChanged(hasFocus);
    
            if(hasFocus && this.contextMenuDisplayed) {
                this.contextMenuDisplayed = false;
                this.onContextMenuClosed(null);
            }
        }
    
        public void onPrepareContextMenu() {
            this.contextMenuDisplayed  = true;
        }
    
    }