968
外匯
屏蔽android的menu鍵,使menu鍵不能用,自定義menu鍵
在Activity中重寫onKeyDown方法,Menu鍵被屏蔽但HOME鍵未被屏蔽,其中還HOME屏蔽在我的另外一篇博客中已詳細介紹,下麵來解決Menu鍵被屏蔽,讓其中MENU鍵有效。
屏蔽android的menu鍵:
@Override public 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();// 更新menu menuGrid.setSelection(ITEM_MORE); break; } } });
最後更新:2017-04-02 06:52:12