Я установил пользовательский вид для одного из моих панелей меню MenuBar, как этот
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.loop_thread, menu);
ImageView iv = (ImageView)(getLayoutInflater().inflate(R.layout.image_container, null));
menu.findItem(R.id.action_filter).setActionView(iv);
...
но когда я нажимаю этот пункт меню в своем приложении, onOptionsItemSelected()
не вызывается. (Я проверил это, установив точку останова в начале метода). Если я нажимаю другие кнопки, на панели действий вызывается onOptionsItemSelected().
здесь находится пользовательский вид xml code fo rmy:
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ibtnFilterMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/darker_gray"
android:src="@drawable/btn_action_down_arrow"
style = "@android:style/Widget.ActionButton"/>
Я также попытался установить представление Action в файле xml меню:
<item android:id="@+id/action_filter"
android:title="@string/filter_options"
android:actionLayout="@layout/image_container"
android:orderInCategory="100"
android:showAsAction="ifRoom" />
Примечание. Я знаю, что могу сделать изображение кликабельным и вручную установить onClickListener для него, но ради обучения я хочу разобраться в этом.