我有一个菜单,它是从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>
这里是活动中的代码:
@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属性时,它可以正常工作。 我该如何解决这个问题?
谢谢。
item.setOnMenuItemClickListener
,但它没有起作用。关键是要获取我的自定义视图并在其上设置clickListener。感谢您的帮助 :) 尽管,onClick()
不应该使用@ Override进行注释。我将您的回复编辑为可行版本,并且更易消化;) - Alireza Mirian