如何在Android中动态添加菜单项

维杰

我想动态添加菜单项。我有这样的菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/allItems"
        android:showAsAction="always"
        android:title="@string/trackAll"/>
    <item
        android:id="@+id/specficItems"
        android:showAsAction="always"
        android:title="@string/trackSpecific"/>
    <item
        android:id="@+id/favItems"
        android:showAsAction="always"
        android:title="@string/trackFav"/>

</menu>

我尝试将项目添加到中favItems但是当我这样尝试时:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.admin_menu, menu);

    MenuItem item=menu.findItem(R.id.favItems);

    menu.add(0, MY_MENU_1, 0, "Item 1").setShortcut('3', 'c');
    menu.add(0, MY_MENU_2, 0, "Item 2").setShortcut('4', 's');
    menu.add(0, MY_MENU_3, 0, "Item 3").setShortcut('5', 'z');
    return true;
}

输出如下: 在此处输入图片说明

但我想将此项目添加到 favItems

请让我知道在中动态添加项目的任何想法favItems

如果我这样尝试:

@Override
    public boolean onPrepareOptionsMenu(Menu menu) {    
    menu.add(0, MY_MENU_1, 0, "Item 1").setShortcut('3', 'c');
    menu.add(0, MY_MENU_2, 0, "Item 2").setShortcut('4', 's');
    menu.add(0, MY_MENU_3, 0, "Item 3").setShortcut('5', 'z');
    return super.onPrepareOptionsMenu(menu);
    }

这样的操作来了:

在此处输入图片说明

雷内·朱斯(Rene Juuse)

现在,您只是向中添加项目menu

尝试这样做:

 MenuItem item = menu.findItem(R.id.favItems);
 SubMenu sub = item.getSubMenu();

 sub.add(0, MY_MENU_1, 0, "Item 1").setShortcut('3', 'c');
 sub.add(0, MY_MENU_2, 0, "Item 2").setShortcut('4', 's');
 sub.add(0, MY_MENU_3, 0, "Item 3").setShortcut('5', 'z');

编辑:

另外,您favItems应该是这样的:

<item
    android:id="@+id/favItems"
    android:showAsAction="always"
    android:title="@string/trackFav">
    <menu>
    </menu>  
</item>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章