如何实现由长按或点击使用内置布局和ListAdapter的ListActivity触发的上下文菜单?如何在Android的ListActivity中实现上下文菜单?
39
A
回答
73
在onCreate方法调用registerForContextMenu这样的:
registerForContextMenu(getListView());
,然后填充上onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo)菜单。该menuInfo参数可以提供关于该项目是长期的点击这样的信息:
AdapterView.AdapterContextMenuInfo info;
try {
info = (AdapterView.AdapterContextMenuInfo) menuInfo;
} catch (ClassCastException e) {
Log.e(TAG, "bad menuInfo", e);
return;
}
long id = getListAdapter().getItemId(info.position);
,你通常的方式调用menu.add添加菜单项:
menu.add(0, MENU_ITEM_ID, 0, R.string.menu_string);
当用户拿起一个选项,onContextItemSelected被调用。同样onMenuItemSelected,这个事实在文档中没有明确解释,除了说你使用其他方法接收来自上下文菜单的调用;请注意,不要共享ID。
在onContextItemSelected你可以得到阿霍德的MenuInfo的,因此通过调用getMenuInfo()选择的项目的ID:
try {
info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
} catch (ClassCastException e) {
Log.e(TAG, "bad menuInfo", e);
return false;
}
long id = getListAdapter().getItemId(info.position);
+1
啊,谢谢。一直在网上寻找,但只能找到旧版本。这个与蛋糕完美搭配。 – 2009-04-23 11:51:12
14
5
listView = (ListView) findViewById(R.id.listpockets);
registerForContextMenu(listView);
public void onCreateContextMenu(android.view.ContextMenu menu, View v, android.view.ContextMenu.ContextMenuInfo menuInfo) {
//AdapterContextMenuInfo info = (AdapterContextMenuInfo)menuInfo;
menu.setHeaderTitle(getString(R.string.titleDelete));
menu.add(0, CommonUtil.CONTEXT_MENU__DELETE_ID, 0, getString(R.string.menuDelete));
};
@Override
public boolean onContextItemSelected(MenuItem item) {
if(item.getItemId() == CommonUtil.CONTEXT_MENU__DELETE_ID)
{
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
long id = this.listView.getItemIdAtPosition(info.position);
Log.d(TAG, "Item ID at POSITION:"+id);
}
else
{
return false;
}
return true;
}
相关问题
- 1. ListActivity中的AndroidAnnotations和上下文菜单
- 2. 如何实现NSCollectionView的上下文菜单
- 3. 如何实现自定义ListView的上下文菜单?
- 4. Android如何知道上下文菜单何时完全呈现
- 5. 如何在android中的上下文菜单中显示图标?
- 6. 角2:如何实现悬停上下文菜单功能
- 7. Android上下文菜单
- 8. 如何在ListView中实现自定义视图的上下文菜单?
- 9. android中的上下文菜单
- 10. Android上下文菜单不再出现在模拟器中
- 11. 如何实现下拉菜单
- 12. 在Android中打开一个浮动菜单(上下文菜单)?
- 13. 如何在按键上实现上下文菜单而不是长按/轻按
- 14. Android上的NoSuchMethodException上下文菜单
- 15. Android WebView上的上下文菜单
- 16. 在Compass&jQuery中实现下拉菜单
- 17. 在菜单项上调用android上下文菜单按
- 18. 如何在android中创建动态上下文菜单?
- 19. 如何在上下文菜单中过滤菜单jquery插件
- 20. 在Android Studio中实现选项菜单
- 21. Android上下文菜单显示在onCreate
- 22. 如何在Android上调用上下文敏感菜单?
- 23. 表现不佳的上下文菜单
- 24. 如何在Android中实现更多可见项目的菜单?
- 25. 使用PopupControlExtender实现右键单击上下文菜单?
- 26. Android的ListView的上下文菜单
- 27. 上下文菜单单击Android
- 28. ListActivity的ActionBar上的菜单图标
- 29. 菜单抽屉实现android
- 30. Android的上下文菜单定制
您的修改已完全有效地改变了这个问题。只是问不同的问题可能会更好。 – 2009-01-14 20:25:55