Android 当我的列表视图具有自定义适配器时,为什么MenuItem.AdapterContextMenuInfo为空?
我的问题: 在我开始使用OnLongClickListener之前,当列表视图具有自定义适配器时,是否有更好的方法来传递“单击什么来创建此上下文菜单”信息 以下是一些细节: 通常,我的代码可以执行如下操作:Android 当我的列表视图具有自定义适配器时,为什么MenuItem.AdapterContextMenuInfo为空?,android,Android,我的问题: 在我开始使用OnLongClickListener之前,当列表视图具有自定义适配器时,是否有更好的方法来传递“单击什么来创建此上下文菜单”信息 以下是一些细节: 通常,我的代码可以执行如下操作: public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 然后继续快乐 但是,自从
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
然后继续快乐
但是,自从我引入自定义适配器以来,item.getMenuInfo()就为null。
这是一个大问题,因为我的代码不再知道单击了哪个项目。(我的自定义适配器使每个列表行成为复选框和文本视图)
我试过了,但失败了:
创建了我自己的特殊AdapterContextMenuInfo(称为“HasAViewMenuInfo”),但当我在这个方法中传递它时,它最终在菜单中为null
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, new HasAViewMenuInfo(v));
我怀疑你的问题是: 我的自定义适配器生成每个列表行 复选框和文本视图 暂时去掉复选框。如果您的上下文菜单现在起作用,那么复选框就是问题所在。考虑切换到<代码> CHECKDTECTVIEW ——这比ListVIEW的支持要好很多(例如,使用<代码> CouthySoMeDyMule,<代码> SETITECHECKEDD()/<代码>。 我使用了带有自定义适配器的上下文菜单,没有任何问题。但是,我没有在我的行中使用复选框