Android 在运行时添加菜单项

标签 android menu

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
            case R.id.about:
            Intent i = new Intent(this, impresszum.class);
            startActivity(i);

                return true;
            case R.id.quit:
                AppUtils.ExitTheApplication();
                return true;
            default:
                return super.onOptionsItemSelected(item);
    }
}

我有这个代码。我想在运行时添加一些菜单,当我需要的时候。当我需要时删除一些菜单。我怎样才能做到这一点?

最佳答案

菜单项不一定与 Shelly 建议的部分中的 Activity 相关,在这种情况下,您可以调用 invalidateOptionsMenu() 来保留菜单对象以便“刷新”后续调用 onPrepareOptionsMenu() 中的菜单。

来自the same Android Developers site :

On Android 2.3.x and lower, the system calls onPrepareOptionsMenu() each time the user opens the options menu (presses the Menu button).

On Android 3.0 and higher, the options menu is considered to always be open when menu items are presented in the action bar. When an event occurs and you want to perform a menu update, you must call invalidateOptionsMenu() to request that the system call onPrepareOptionsMenu().

关于Android 在运行时添加菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5375645/

相关文章:

Android appcompat 操作栏菜单项 showAsAction 不起作用

android - 更改android菜单的背景颜色

Android GridView 垂直边框

android - 在 Android list 中添加方向不起作用 [React-Native]

android - 更新 Poweramp 播放列表

swift - 如何在 Swift/MacOS 中添加菜单项到顶部导航栏

css - 这个子菜单定位可以单独使用 CSS 吗?

不幸的是,android 应用程序在从真实设备运行时停止了

android - 如何以编程方式清除 Android 中的非 Activity 内存?

css - css 菜单可以做到这一点吗?