是否可以禁用菜单按钮?

3
我正在为某些人制作受限制的安卓启动器。我所尝试的关键特性包括:
  • 提供对选定应用程序的访问权限。
  • 禁用按钮,以免用户显示在手机上安装的所有应用程序。
  • 禁用物理按钮(菜单),以限制用户进入Android的“设置”菜单。
如果这些功能是可行的,如果您能链接任何示例或解释如何实现,那将非常好。
谢谢。
3个回答

6
@Override
public boolean onPrepareOptionsMenu (Menu menu) {
    return false;
}

文件中写道:

如果您返回true,菜单将被显示;如果您返回false,则不会显示。


1
这将禁用所有与菜单相关的内容。我希望在操作栏中有溢出菜单按钮,但只想禁用硬件菜单按钮。 - user2968401
@user2968401 为此,我想你需要阅读这篇文章:https://dev59.com/M2ox5IYBdhLWcg3wTytx - Chintan Soni

3

覆盖onPrepareOptionsMenu方法

public boolean onPrepareOptionsMenu (Menu menu) {
   return false;
}

如果可能的话,能否解释一下这段代码的作用,因为我不习惯安卓编程。谢谢。 - Jae Park

1

请查看AndroidDoc

实现keylistener并覆盖onKeyDown方法。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    boolean clickedPhysicalMenu = false;
    if (keyCode == KeyEvent.KEYCODE_MENU) {
        clickedPhysicalMenu = true;
    }
    return clickedPhysicalMenu;
}

如果可能的话,能否解释一下这段代码的作用,因为我不太熟悉 Android 编程。谢谢。 - Jae Park
5
禁用菜单键的正确方法是返回true以防止事件的进一步传播,请参见链接:https://developer.android.com/reference/android/app/Activity.html#onKeyDown(int,android.view.KeyEvent)`@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_MENU) { return true; } return super.onKeyDown(keyCode, event); }` - Aaron Dancygier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接