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.

Original source