我正在使用设计库和appCompat库开发Android应用程序。当尝试监听菜单项的长按时,我遇到了一些问题。
我的应用程序有一个NavigationView作为侧边栏菜单,在这个navigationview中,我有很多菜单项。
我可以监听这些项目的单击,但无法监听长按。
有人知道如何实现吗?
谢谢。
像这样做,但你必须将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;
}
});
如果您有任何问题,请在评论中向我提问。
更新
您可以使用:
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
}
});
setOnLongClickListener(...)
方法不存在。有什么解决方法吗?https://dev59.com/sFoU5IYBdhLWcg3wCjrx - Thomas Vos