现在的位置: 首页 > 综合 > 正文

屏蔽android的menu键,使menu键不能用,自定义menu键

2013年10月14日 ⁄ 综合 ⁄ 共 1475字 ⁄ 字号 评论关闭

在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;
}


}
});


 

抱歉!评论已关闭.