当前位置 : 主页 > 手机开发 > android >

Android – 选项菜单不起作用

来源:互联网 收集:自由互联 发布时间:2021-06-11
我正在尝试在从服务启动的Activity中创建一个Options菜单,然后根据来自通过Handler传递的Service的消息更改其UI. 我按如下方式设置了“选项”菜单: /** Menu creation and setup **/ /* Creates the me
我正在尝试在从服务启动的Activity中创建一个Options菜单,然后根据来自通过Handler传递的Service的消息更改其UI.

我按如下方式设置了“选项”菜单:

/** Menu creation and setup **/

        /* Creates the menu items */
        public boolean onCreateOptionsMenu(Menu menu) {
            menu.add(0, 1, 0, "Speaker");
            menu.add(0, 2, 0, "Mute");
            return true;
        }

        /* Handles item selections */
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
            case 1:
                //Do something here
                return true;
            case 2:
               //Do something here
                return true;
            }
            return false;
        }

但是当我的应用程序运行时,它永远不会被调用.

我遇到了一些问题,我需要使用Handler来更改屏幕上的Text,因为信息是在错误的线程上传递的,同样的问题可能是菜单没有显示的原因吗?

是这样我怎么能解决它,因为我无法覆盖处理程序中的方法

确保您没有在密钥处理程序中使用菜单的键事件.菜单按钮事件在由onCreateOptionsMenu函数处理之前通过键处理程序发送.这可能发生在任何具有焦点的视图中,也可能发生在活动本身中.解决这个问题的快速方法如下:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_MENU)
        return super.onKeyDown(keyCode, event);
    -- insert all other key handling code here --
    return false;
}
网友评论