OnMenuItemSelected isn't called when layout is set for menu item
android, android-actionbar, android-inflate, android-layout, menuitem
Solution
you should use below snippet ( Just for reference )
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
final Menu m = menu;
final MenuItem item = menu.findItem(R.id.ActionConnection);
item.getActionView().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
sync();
}
});
return true;
}
Problem
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.