为菜单项设置布局时,不调用OnMenuItemSelected

我有一个从main_menu.xml膨胀的菜单:

   

这是活动中的代码:

 @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); } 

但是当我触摸菜单项时,不会调用onOptionsItemSelected。 当我删除菜单项的actionLayout属性时,它工作正常。 我怎样才能解决这个问题?
谢谢。

Related of "为菜单项设置布局时,不调用OnMenuItemSelected"

你应该使用下面的代码片段(仅供参考)

 @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; } 

除了Vipul Shah提供的答案。

确保禁用操作布局中所有项目的可单击选项:

 android:clickable="false" 

否则,它可能会窃取点击,因此您仍然无法接收onClick回拨。