Xml文件的内容(自定义的menu布局)
activity中的内容
private PopupWindow pop ;
private View layout;
privateintstatus = 2 ;//1.菜单弹出 2.菜单未弹出
private Button help,about;
public menuactivity extends Activity{
publicboolean onKeyDown(int keyCode, KeyEvent event){
switch (keyCode) {
case KeyEvent.KEYCODE_MENU://按下menu键
if(status == 1)
returnfalse;
layout = getLayoutInflater().inflate(R.layout.menulayout, null);
// 创建PopupWindow对象,并在指定位置弹出用于显示菜单的窗口
pop = new PopupWindow(layout,LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT,true);
pop.setBackgroundDrawable(new BitmapDrawable());//响应返回键必须要有这句,但是必须放在showAtLocation或者showAsDropDown之前有用,(或者null)
// 设置弹出窗口的位置
pop.showAtLocation(layout,Gravity.CENTER, 0, 0);
pop.setFocusable(true);// menu菜单获得焦点如果没有获得焦点menu菜单中的按键事件无法响应
//添加菜单选项的单击事件
help = (Button) layout.findViewById(R.id.menu_help);
about = (Button) layout.findViewById(R.id.menu_about);
help.setOnClickListener(new OnClickListener() {
@Override
publicvoid onClick(View v) {
pop.dismiss();
MobclickAgent.onEvent(PandaMain.this, getString(R.string.umid_clk_help));
startActivity(new Intent(PandaMain.this, ActivityHelp.class));
}
});
about.setOnClickListener(new OnClickListener() {
@Override
publicvoid onClick(View v) {
MobclickAgent.onEvent(PandaMain.this, getString(R.string.umid_clk_about));
startActivity(new Intent(PandaMain.this, ActivityAbout.class));
}
});
break;
case KeyEvent.KEYCODE_BACK:
pop.dismiss();
break;
}
}