如何收听长按导航视图项目?

How to listen to long click on a navigationview item?

我正在使用设计库和 appCompat 库开发 android 应用。尝试收听长按菜单项时,我遇到了一些问题。 我的应用程序有一个 NavigationView 作为侧边菜单,在这个 navigationview 中我有一个包含很多项目的菜单。 我可以听到这些项目的点击,但我听不到长按。 有人知道我该如何实现吗?

谢谢。

更新

您可以使用:

Menu myMenu = navigationView.getMenu();
MenuItem myItem = myMenu.findItem(R.id.my_item);

myItem.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
     public boolean onLongClick(View v) {
       // do something 

    }
});

这样做,但是你必须将 popup_layout.xml 设置到 MENU 文件夹中并写入标签 <menu> 而不是约束布局或类似的东西。

在我的 Java class 中,我为我的列表写了这个,重要的是 R.menu.yourlayout):

listView = (ListView) findViewById(R.id.listView);

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
        PopupMenu p = new PopupMenu(ViewListContents.this, v);
        MenuInflater inflater = p.getMenuInflater();
        inflater.inflate(R.menu.popup_layout, p.getMenu());
        p.show();
        return true;
    }
});

有什么问题可以在评论里问我