java - 如何以编程方式从菜单中删除 MenuItems?

标签 java android

我正在开发一些 Android 应用程序,我有一些菜单代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:showAsAction="ifRoom"
        android:id="@+id/menuItemToLeft"
        android:icon="@drawable/to_left" />
    <item
        android:showAsAction="ifRoom"
        android:id="@+id/menuItemToRight"
        android:icon="@drawable/to_right"/>
</menu>

我使用“showAsAction”来在操作栏上显示这些项目。我也有 3 个用于导航的选项卡。 But there is the following task: remove (or set visibility as false) this items from Action bar when tab with 0 positions is selected.但我不明白我该怎么做:

public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
    mViewPager.setCurrentItem(tab.getPosition());
    if (tab.getPosition()==0) {
    //some code
    }
}

最佳答案

尽量不要使用:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    super.onPrepareOptionsMenu(menu);
    menu.findItem(R.id.menuItemToLeft).setVisible(true);
    menu.findItem(R.id.menuItemToRight).setVisible(false);
    return true;
}
//true or false depending on your requirements

或删除:

menu.removeItem(x); //where x is the number of the menu item from 0,1,...

然后您可能需要使用 menu.Add() 再次创建 MenuItem

关于java - 如何以编程方式从菜单中删除 MenuItems?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12894802/

相关文章:

android - 如何使用 GSON 解析此 JSON 数据?并将其放入 ArrayList

c# - Monodroid - 处理重用 ListView 行的 subview 上的事件

android - 如何在自定义位置发布签到(如 foursquare)

java - 无法处理 ArrayIndexOutOfBoundsException

java - Java 中搜索和排序算法的高效实现

java - Webdriver - HTTP 身份验证对话框

java - android - 创建分数计数

android - 启动后台定位服务不工作

java - Gradle 项目同步失败。基本功能(例如编辑、调试)将无法正常工作

java - 在 Solaris 操作系统中使用 Java 和第 3 方库在打印机中打印 PDF