2013-12-14 6 views
0

Предположим, что у нас есть активность, которая является дочерним классом активности, определенной в библиотеке. В этом дочернем классе мы хотим добавить дополнительный пункт меню в меню, созданное базовым классом. Но мы хотим, чтобы этот дополнительный пункт меню был определен в XML. Это возможно? Как?Динамически добавить элемент меню, определяемый 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> 

ответ

0

меню Try инфлятор, необходимо добавить пункты меню на основе заданного 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.

+0

Спасибо, я просто проигнорировал это в документе «меню« Меню для раздувания ». Элементы и подменю будут добавлены в это меню». И я думал, что раздутие очистит базовое меню и создаст новый. – Robin

Смежные вопросы