动态添加XML定义的菜单项

时间:2013-12-14 03:30:41

标签: android android-resources android-library android-menu

假设我们有一个活动,它是库中定义的活动的子类。在这个子类中,我们想要在基类创建的菜单中添加其他菜单项。但我们希望在XML中定义这个额外的菜单项。那可能吗?怎么样?

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    // TODO: how to add an additional menu item here?
    // the item is defined in xml
    // the id is item_switch_browsing_mode
    return true;
}

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/item_switch_browsing_mode"
        android:icon="@android:drawable/ic_menu_view"
        android:showAsAction="always"/>
</menu>

1 个答案:

答案 0 :(得分:0)

尝试菜单inflater,它应该根据指定的xml添加菜单项,但是调用super.onCreateOptionsMenu来首先填充父菜单项。像这样:

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

您可以参考http://developer.android.com/reference/android/view/MenuInflater.html