我有一个listView,其中每个项目都有一个按钮,可以打开带有选项的PopupMenu。
大多数情况下,这些菜单在错误的位置打开(有时它们在正确的位置打开),这些随机打开甚至不一致。
选择菜单中的选项会使用我最初尝试打开菜单的位置上的正确项目操作
我的代码:
settings.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popup = new PopupMenu(context, settings);
popup.getMenuInflater().inflate(R.menu.notes_menu, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
String itemTitle = item.getTitle().toString();
switch (itemTitle) {
case "Add Pictures":
//adding pictures
case "Delete":
//deleting
case "Share":
//sharing
}
return true;
}
});
popup.show();
}
});
此settings
按钮位于listView适配器的public View getView(final int position, View convertView, ViewGroup parent)
方法内。
非常感谢任何帮助! ^^
答案 0 :(得分:2)
在设置onClickListener之前创建弹出窗口,并且只在onClick()中调用popup.show()。