坑爹的Android menu出不来

在Android开发中遇到menu菜单无法显示的问题,尝试多种网上的解决方案无效。问题出在onKeyDown()函数返回值为true,导致menu键事件被屏蔽。通过注释onKeyDown函数或将其返回值改为false,菜单恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#坑爹的Android menu出不来#
貌似之前也遇到过这种类似的问题,网上各种所谓的解决方案也都试过,都无疾而终~当时也不知怎么解决的。
直到最近,做的一个东东被bossZhang训斥操作太麻烦时(果断吃力不讨好啊,苦逼programmer),才发现忘了加menu了。于是在原页面下加了menu菜单。代码如下:

      

//实现menu菜单 关于
private static final int ITEM1 = Menu.FIRST;
private static final int ITEM2 = Menu.FIRST+1;
private static final int ITEM3 = Menu.FIRST+2;
private static final int ITEM4 = Menu.FIRST+3;
    
    @Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, ITEM1, 0, "常规");
menu.add(0, ITEM2, 0, "重复");
menu.add(0, ITEM3, 0, "返回");
menu.add(0, ITEM4, 0, "设置");
return true;
}    
@Override
public boolean onOptionsItemSelected(MenuItem item) {
 
switch (item.getItemId()) {
case ITEM1:
update(false);
break;  
case ITEM2:
update(true);
break;  
 case ITEM3:
this.finish();
 break;
case ITEM4:
showSettingDialog();
break;
}
returnsuper.onOptionsItemSelected(item); 
// return true;
 }

可TMD死活就是可是死活就是不出来!!网上有说改这改那儿的,结果还是不行。

没办法,推测1,跟布局有关?
新建一个prj,onCreat()里面就只显示这个页面的东东,然后再加上以上生成menu的代码,结果,按menu键后,菜单出来了。可见以上代码完全没有问题!那是哪里出了毛病呢?
为何,菜单的创建事件被屏蔽了?
推测2:menu也是按键触发的,可能跟其他按键如back键事件触发冲突了。
查程序,果然,里头写了个onKeyDown的函数,哎,而且悲催地返回值为true(表示已处理完,那自然不会再响应menu键咯)
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intent = new Intent();
intent.setClass(this, TestMain.class);
startActivity(intent);
finish();
}
return true;
    }

解决:注释掉onKeyDown函数,运行,menu菜单出现!
或者,将return true改为return false
╮(╯▽╰)╭...坑爹的menu键终于重现了..特此为记!!
明早继续改交互!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值