Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
onMenuItemClick没有被调用-Android_Android_Android Fragments_Popup - Fatal编程技术网

onMenuItemClick没有被调用-Android

onMenuItemClick没有被调用-Android,android,android-fragments,popup,Android,Android Fragments,Popup,我有谷歌地图的活动,和一个按钮,我想充气弹出菜单 这是一节课: public class NewMissionMapMainUser extends AppCompatActivity implements PopupMenu.OnMenuItemClickListener, OnMapReadyCallback, GoogleMap.OnMarkerClickListener, GoogleMap.OnMyLocationButtonClickListener { 这是按下按钮时调用的onC

我有谷歌地图的活动,和一个按钮,我想充气弹出菜单

这是一节课:

public class NewMissionMapMainUser extends AppCompatActivity implements PopupMenu.OnMenuItemClickListener, OnMapReadyCallback, GoogleMap.OnMarkerClickListener, GoogleMap.OnMyLocationButtonClickListener {
这是按下按钮时调用的onClick方法:

public void showPopup(View v) {
    PopupMenu popup = new PopupMenu(this, v);
    MenuInflater inflater = popup.getMenuInflater();
    inflater.inflate(R.menu.popup_menu, popup.getMenu());
    popup.show();
}
这就是没有被调用的代码

@Override
public boolean onMenuItemClick(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.item_comedy:
            Toast.makeText(this, "Comedy Clicked", Toast.LENGTH_SHORT).show();
            return true;
        case R.id.item_movies:
            Toast.makeText(this, "Movies Clicked", Toast.LENGTH_SHORT).show();
            return true;
        case R.id.item_music:
            Toast.makeText(this, "Music Clicked", Toast.LENGTH_SHORT).show();
            return true;
        default:
            Toast.makeText(this, "Yo", Toast.LENGTH_SHORT).show();
            return false;
    }
}
我尝试了以下链接:

和设置选项菜单

但是为了使操作栏可见,我已经将片段更改为扩展AppCompatActivity,因此行setHasOptions菜单;无法解决


有人知道如何解决这个问题吗?谢谢

因为您正在动态实例化弹出菜单,所以需要为它提供将接收单击事件的侦听器。您应该调用popup.setOnMenuItemClickListenerthis,假设这是您的活动或片段。

由于您正在动态实例化PopupMenu,因此需要为它提供将接收单击事件的侦听器。假设这是您的活动或片段,您应该调用popup.setOnMenuItemClickListener this。

您从不在弹出菜单上调用setOnMenuItemClickListener。您从不在弹出菜单上调用setOnMenuItemClickListener。