【问题标题】:Dynamically add an XML defined menu item动态添加 XML 定义的菜单项
【发布时间】:2013-12-14 03:30:41
【问题描述】:

假设我们有一个活动,它是库中定义的活动的子类。在这个子类中,我们想在基类创建的菜单中添加额外的菜单项。但是我们希望在 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>

【问题讨论】:

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


    【解决方案1】:

    尝试menu 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

    【讨论】:

    • 谢谢,我只是在文档中忽略了这一点“菜单膨胀到的菜单。项目和子菜单将被添加到这个菜单中。”我认为膨胀会清除基本菜单并创建一个新的一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多