屏蔽android的menu键,使menu键不能用,自定义menu键
16lz
2021-01-24
在Activity中重写onKeyDown方法,Menu键被屏蔽但HOME键未被屏蔽,其中还HOME屏蔽在我的另外一篇博客中已详细介绍,下面来解决Menu键被屏蔽,让其中MENU键有效。
屏蔽android的menu键:
@Overridepublic boolean onPrepareOptionsMenu(Menu menu) {Log.i(TAG, "groupList.size() = " + groupList.size());if(groupList.size() > 0){menu.add(0, MENU_EDITOR, 0, "编辑");super.onPrepareOptionsMenu(menu);}return false;}
防止屏蔽menu键:
public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_MENU) { super.openOptionsMenu(); }return true;}
自定义menu:
@Override/*** 创建MENU*/public boolean onCreateOptionsMenu(Menu menu) {menu.add("menu");// 必须创建一项return super.onCreateOptionsMenu(menu);}@Override/*** 拦截MENU*/public boolean onMenuOpened(int featureId, Menu menu) {if (menuDialog == null) {menuDialog = new AlertDialog.Builder(this).setView(menuView).show();} else {menuDialog.show();}return false;// 返回为true 则显示系统menu}menuGrid = (GridView) menuView.findViewById(R.id.gridview);menuGrid.setAdapter(getMenuAdapter(menu_name_array, menu_image_array));/** 监听menu选项 **/menuGrid.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {switch (arg2) {case ITEM_SEARCH:// 搜索break;case ITEM_FILE_MANAGER:// 文件管理break;case ITEM_DOWN_MANAGER:// 下载管理break;case ITEM_FULLSCREEN:// 全屏break;case ITEM_MORE:// 翻页if (isMore) {menuGrid.setAdapter(getMenuAdapter(menu_name_array2,menu_image_array2));isMore = false;} else {// 首页menuGrid.setAdapter(getMenuAdapter(menu_name_array,menu_image_array));isMore = true;}menuGrid.invalidate();// 更新menumenuGrid.setSelection(ITEM_MORE);break;}}});
更多相关文章
- Android关于Activity屏蔽/拦截Home键
- Android笔记之广播Broadcast
- Android统一处理断网
- Android中屏蔽 电源键长按、Home键、Home长按
- android studio 解决65536的方法(64K)
- android 从APP启动另一个APP
- Android(安卓)8.1.0 源码修改之 - 屏蔽 Home 按键
- Android(安卓)Testing Fundamentals 2, robotium, uiautomator,
- Android(安卓)ListView根据项数的大小自动改变高度