Java 未从片段内调用OnOptions ItemSelected

Java 未从片段内调用OnOptions ItemSelected,java,android,Java,Android,由于某些原因,当我单击与其关联的按钮时,未调用我的optionItemSelected。未调用木材原木,但在我单击按钮后,它会立即出现在原木中: D/ViewRootImpl@ba4d36e[POIHistoryFlowActivity]:ViewPostImeInputStage进程指针0 D/ViewRootImpl@ba4d36e[POIHistoryFlowActivity]:ViewPostImeInputStage进程指针1 以下是我的代码: @覆盖 创建时的公共void(Bund

由于某些原因,当我单击与其关联的按钮时,未调用我的optionItemSelected。未调用木材原木,但在我单击按钮后,它会立即出现在原木中:

D/ViewRootImpl@ba4d36e[POIHistoryFlowActivity]:ViewPostImeInputStage进程指针0
D/ViewRootImpl@ba4d36e[POIHistoryFlowActivity]:ViewPostImeInputStage进程指针1
以下是我的代码:

@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
设置选项菜单(真);
}
@凌驾
创建选项菜单(最终菜单菜单,最终菜单充气机){
充气机。充气(右菜单。活动\最近\目的地,菜单);
木材d(“菜单膨胀”);
}
@凌驾
公共布尔值OnOptionItemSelected(最终菜单项){
开关(item.getItemId()){
案例R.id.菜单\行动\项目\清除:
Timber.d(“点击清除按钮”);
//清除目的地
返回true;
违约:
返回super.onOptionsItemSelected(项目);
}
}
在类似的片段中,父级的活动既不覆盖
onCreateOptionsItem()
也不覆盖
onOptionsItemSelected()
,但它们的关联按钮在该片段中不起作用,并且在使用调试器对所有内容进行梳理后,我不知道根本原因是什么。任何帮助我都将不胜感激

更新: 活动\u最近的\u destinations.xml


您正在为此项使用“操作布局”。这就像普通视图一样,单击它不会触发选项ItemSelected回调。您必须获得对布局本身的引用,并添加一个单击侦听器:

@Override
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
    inflater.inflate(R.menu.activity_recent_destinations, menu);
    MenuItem item = menu.findItem(R.id.menu_action_item_clear);
    View actionView = item.getActionView();
    // Set the listener on the root view or any children if necessary
    actionView.setOnClickListener(...);
}
您正在为此项使用“操作布局”。这就像普通视图一样,单击它不会触发选项ItemSelected回调。您必须获得对布局本身的引用,并添加一个单击侦听器:

@Override
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
    inflater.inflate(R.menu.activity_recent_destinations, menu);
    MenuItem item = menu.findItem(R.id.menu_action_item_clear);
    View actionView = item.getActionView();
    // Set the listener on the root view or any children if necessary
    actionView.setOnClickListener(...);
}

您可以发布主机活动的代码和
R.menu.Activity\u recent\u destinations
的内容吗?根据请求进行更新,因此您使用的是
应用程序:actionLayout
。是你在布局中实际点击的按钮吗?如果是这样,您将不会得到菜单项本身的回调。您需要获取膨胀视图的引用并添加标准的单击侦听器。您可以发布主机活动的代码和
R.menu.Activity\u recent\u destinations
?根据请求更新,因此您使用的是
应用程序:actionLayout
。是你在布局中实际点击的按钮吗?如果是这样,您将不会得到菜单项本身的回调。你需要获得一个膨胀视图的引用,并添加一个标准的点击监听器。我通常会在
oncreateoptions菜单中这样做。让我更新答案,让它更明确。啊,看起来你是通过CreateOptions菜单方法来完成的。非常感谢你!!我通常会在创建选项菜单的
中执行此操作,是的。让我更新答案,让它更明确。啊,看起来你是通过CreateOptions菜单方法来完成的。非常感谢你!!