Android菜单选项

Ven*_*van 0 android

我想创建选项菜单并在列表顺序的选项菜单中显示菜单项.

菜单1

菜单2

菜单3

Pie*_*our 5

我努力做同样的事情,这就是最终的工作.基本上,我没有显示选项菜单,而是使用了上下文菜单.

首先,您需要捕获菜单键并使其显示上下文菜单:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_MENU) {
        View view = findViewById(R.id.for_context);
        registerForContextMenu(view);
        openContextMenu(view);
        unregisterForContextMenu(view);
        return true;
    }

    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

您必须将此上下文菜单附加到窗口中的视图,任何没有自己的实际上下文菜单的视图.我使用了窗口中的一个布局.

然后,膨胀菜单:

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    if (v instanceof TableLayout) {
        inflater.inflate(R.menu.my_context_menu, menu);
    }
}
Run Code Online (Sandbox Code Playgroud)

my_context_menu.xml的定义与选项菜单完全相同.

最后一步是处理onContextItemSelected(MenuItem项)中的菜单按下,您可以将其重定向到onOptionsItemSelected(MenuItem项).

当然,这仅适用于您希望像上下文菜单一样显示菜单:没有图标,只有垂直列表中的菜单标签.