I have a menu which is inflated from main_menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/act_sync"
android:showAsAction="always"
android:actionLayout="@layout/sync_action"
android:icon="@android:drawable/ic_popup_sync" />
</menu>
and here is the code in the activity:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
MyMessageHandler.debug("menu item selected");
switch(item.getItemId()){
case R.id.act_sync:
sync();
return true;
}
return super.onOptionsItemSelected(item);
}
But onOptionsItemSelected is not called when I touch the menu item. When I remove the actionLayout attribute of the menu item, it works fine. How can I fix this?
Thanks.
item.setOnMenuItemClickListener
but it didn't work. The point was to get my custom view and set clickListener on it. Thanks for your help :) even though, the onClick() should not be annotated by @Override. I edit your response to the version that works, and also is a bit more digest ;) – Tejeda