在做Notes的过程中碰到一个问题
我为ListView的每一个Item添加了长按事件
listView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
menu.setHeaderTitle("操作");
menu.add(0, 0, 0, "删除");
}
});
之后需要处理当点击这个长按菜单项的动作
public boolean onContextItemSelected(MenuItem item) {
return super.onContextItemSelected(item);
}
这是都知道的 但是我在这个删除过程中 需要找到ListView中对应的这个Item 从而根据Item的属性做出对应操作,而不是我点击的菜单Item,在优快云上我找到了答案
AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
就是这句话了 menuInfo中包含很多属性 其中id就是ListView的id号 targetView则是ListView中Item本身 还存在其他的方法属性可以使用
这是原讨论帖:http://topic.youkuaiyun.com/u/20100727/17/0a767770-e5c4-4fa8-922e-a8449b1377b2.html
文章详细介绍了如何在ListView中处理长按事件触发的上下文菜单,特别关注如何从菜单项点击返回时定位到正确的ListView Item进行特定操作。通过解析AdapterView.AdapterContextMenuInfo获取Item信息,实现精准的Item操作。
375

被折叠的 条评论
为什么被折叠?



