gpt4 book ai didi

android - 如何获取在 ContextMenu 上单击的 Item 的位置?

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:48 25 4
gpt4 key购买 nike

我正在使用此代码获取上下文菜单上的已单击项目位置:

public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
int index = info.position;
}

这里建议:

Android: How to find the position clicked from the context menu

但我在以下行收到 NullPointerException:

 int index = info.position;

为什么会这样?

编辑

我有 2 个这样的 contextMenu 注册 View :

button1.onClick(view v){
registerForContextMenu(v);
openContextMenu(v);
}

button2.onClick(view v){
registerForContextMenu(v);
openContextMenu(v);
}

然后根据 v.getId() 填充菜单。

最佳答案

可以直接使用:

编辑开始

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
AdapterView.AdapterContextMenuInfo info;
try {
info = (AdapterView.AdapterContextMenuInfo) menuInfo;
} catch (ClassCastException e) {
// If the menu object can't be cast, logs an error.
Log.e("MENU", "bad menuInfo", e);
return;
}
position = sectionAdapter.getIndexForPosition(info.position);
menu.setHeaderTitle("");
String[] menuItems = { "item1","item2","item3","item4" };
for (int i = 0; i < menuItems.length; i++) {
menu.add(Menu.NONE, i, i, menuItems[i]);
}
}

编辑结束

public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
int position = item.getItemId();
switch (position)
{

case 0:
break;
.
.
.
default:
break;
}
}

希望对你有所帮助。

关于android - 如何获取在 ContextMenu 上单击的 Item 的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12424809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com