OnMenuItemSelected不叫时,布局设置菜单项 [英] OnMenuItemSelected isn't called when layout is set for menu item
本文介绍了OnMenuItemSelected不叫时,布局设置菜单项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是从main_menu.xml膨胀的菜单:
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>
和这里是code。在活动:
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);
}
但是,当我触摸菜单栏onOptionsItemSelected不叫。当我删除该菜单项的actionLayout属性,它工作正常。我该如何解决这个问题?
感谢。
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.
推荐答案
您必须使用以下代码段(仅供参考)
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;
}
这篇关于OnMenuItemSelected不叫时,布局设置菜单项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文