如何收听长按导航视图项目?
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;
}
});
有什么问题可以在评论里问我
我正在使用设计库和 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;
}
});
有什么问题可以在评论里问我