Menu 菜单基本创建 以及无法弹出问题
2013-05-16 11:51
295 查看
在Activity 中创建Menu菜单的基本步奏方法很简单:重写Activity onCreateOptionsMenu(Menu menu) 方法载入布局文件,并且返回true(注意:必须的返回true,否则系统不知道你是否需要创建Menu菜单),然后在 onOptionsItemSelected(MenuItem item) 监听执行即可。
但是,有时候会出现Menu菜单显示不了的情况,目前自己发现的原因有两个,希望大家多多指教:
1.如上所说,在onCreateOptionsMenu(Menu menu) 没有返回true
2.Activity重写onKeyDown()方法监听按键响应;
所以,根据android事件处理机制,应该调用系统的方法,将红色部分代码改为:
@Override public boolean onCreateOptionsMenu(Menu menu) { Log.d(TAG, "into onCreateOptionsMenu()"); getMenuInflater().inflate(R.menu.activity_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { Log.d(TAG, "into onOptionsItemSelected()"); switch (item.getItemId()) { case R.id.menu_normal: if(playMode==PlayMode.NORMAL){ return true; } playMode = PlayMode.NORMAL; changePlayMode(playMode); timerView.stopTimer(); return true; case R.id.menu_time: if(playMode==PlayMode.TIME){ return true; } playMode =PlayMode.TIME; changePlayMode(playMode); return true; case R.id.menu_set: WSDialog.getInstance(this).createMutilDialog(); return true; case R.id.menu_net_play: goUsersListActivity(); return true; } return super.onOptionsItemSelected(item); }
但是,有时候会出现Menu菜单显示不了的情况,目前自己发现的原因有两个,希望大家多多指教:
1.如上所说,在onCreateOptionsMenu(Menu menu) 没有返回true
2.Activity重写onKeyDown()方法监听按键响应;
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK&& event.getAction() == KeyEvent.ACTION_DOWN) { Log.d(TAG, "into onKeyDown()"); //应用程序退出,发出下线通知 netThreadHelper.noticeOffline(); netThreadHelper.disconnectSocket(); this.finish(); System.exit(0); Log.d(TAG, "out onKeyDown()"); return true; } return true; }方法返回true,系统就不会处理Menu 按键,自然就会没有反应。
所以,根据android事件处理机制,应该调用系统的方法,将红色部分代码改为:
return super.onKeyDown(keyCode, event);即可
相关文章推荐
- 解决SlidingMenu滑动Menu无法关闭菜单的问题
- 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题
- 关于无法加载已创建的布局文件的问题的解决方案以及已布局在对应的R文件中未生成相应ID的问题的解决
- ubuntu 创建新的用户和用户组 以及新用户无法使用bash的问题
- 解决CMFCMenuButton无法显示右边箭头以及多字节编码下堆破坏的问题
- 解决最小化安装Centos7后无法上网的问题,以及安装成功后的基本配置
- 转--创建选项卡实现弹出菜单,以及自定义菜单样式。
- Linux命令行中创建的软连接(ln -s)的无法移动问题,以及绝对路径和相对路径的概念
- Flex创建弹出菜单(PopUpButton/Menu/PopMenuButton)
- 今天论坛中遇到的两则问题说明(COM库的初始化问题以及托盘图标弹出菜单不消失问题)
- Linux命令行中创建的软连接(ln -s)的无法移动问题,以及绝对路径和相对路径的概念
- 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题
- 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题-FenGKun
- Toolbar 设置 menu 背景色、字体颜色以及弹出菜单不悬浮
- Flex创建弹出菜单(PopUpButton/Menu/PopMenuButton) 推荐
- 第三篇:menu菜单的创建以及使用
- AlertDialog实现自定义布局以及解决EditText无法弹出软键盘或者软键盘弹出错误问题
- oracle命令创建数据库和表空间以及安装后本地无法登录问题
- App第三方登录微信遇到code以及无法弹出微信登录界面libs包不对等一系列问题解决
- android menu的使用(Menu无法弹出问题)