如何监听NavigationView项目的长按?

5
我正在使用设计库和appCompat库开发Android应用程序。当尝试监听菜单项的长按时,我遇到了一些问题。 我的应用程序有一个NavigationView作为侧边栏菜单,在这个navigationview中,我有很多菜单项。 我可以监听这些项目的单击,但无法监听长按。 有人知道如何实现吗? 谢谢。
2个回答

0

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

在我的Java类中,我为我的列表编写了以下内容,并重要的是编写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;
    }
});

如果您有任何问题,请在评论中向我提问。


-3

更新

您可以使用:

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 

    }
});

这将在我的NavigationView上设置onLongclickListener,但我必须在导航视图项上实现它。 - Anderson Silva
@AndersonNunesdaSilva请现在查看我的代码,并查看它是否有所帮助。 - Loolooii
8
对我来说,setOnLongClickListener(...) 方法不存在。有什么解决方法吗?https://dev59.com/sFoU5IYBdhLWcg3wCjrx - Thomas Vos
@ThomasVos请看我在底部的答案。 - Noah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接