Я пытаюсь сделать меню действий с настраиваемым представлением элементов программным путем.MenuItem.setActionView() не работает
Мой menu.xml
файл:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_category"
android:icon="@drawable/ic_category"
app:showAsAction="always|collapseActionView"
android:title="@string/category">
<menu>
</menu>
</item>
</menu>
Создание меню:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
MenuItem category = menu.findItem(R.id.action_category);
Menu categoriesMenu = category.getSubMenu();
Category[] items = Category.values();
LayoutInflater baseInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for (int i = 0; i < items.length; ++i){
Category c = items[i];
MenuItem item = categoriesMenu.add(i, c.id, 0, c.resourceText);
View myCustomView = baseInflater.inflate(R.layout.category_list_item, null);
((ImageView)myCustomView.findViewById(R.id.icon)).setImageResource(c.resourceIcon);
item.setActionView(myCustomView);
}
}
Но setActionView()
не работает. Создается только стандартный текст. Кто-нибудь знает, как программно создать элемент меню с настраиваемой компоновкой?
Я вижу, что вы вызываете getActivity(), поэтому я предполагаю, что вы используете этот код в своем фрагменте. Включить меню в Фрагменте с помощью 'setHasOptionsMenu (true);' method? – comrade
Да, меню создано, но с видом по умолчанию, а не обычным. – mol