如何显示ContextMenu长按listview android?

时间:2017-02-01 14:48:19

标签: android listview contextmenu

此处是Traceback (most recent call last): File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/django/core/handlers/exception.py", line 39, in inner response = get_response(request) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/django/core/handlers/base.py", line 187, in _get_response response = self.process_exception_by_middleware(e, request) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/django/core/handlers/base.py", line 185, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/django/views/decorators/cache.py", line 43, in _cache_controlled response = viewfunc(request, *args, **kw) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/wagtail/wagtailadmin/decorators.py", line 24, in decorated_view return view_func(request, *args, **kwargs) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/wagtail/contrib/modeladmin/options.py", line 350, in index_view return view_class.as_view(**kwargs)(request) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/django/views/generic/base.py", line 68, in view return self.dispatch(request, *args, **kwargs) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/django/utils/decorators.py", line 67, in _wrapper return bound_func(*args, **kwargs) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view return view_func(request, *args, **kwargs) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/django/utils/decorators.py", line 63, in bound_func return func.__get__(self, type(self))(*args2, **kwargs2) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/wagtail/contrib/modeladmin/views.py", line 249, in dispatch self.queryset = self.get_queryset(request) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/wagtail/contrib/modeladmin/views.py", line 554, in get_queryset filters_use_distinct) = self.get_filters(request) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/wagtail/contrib/modeladmin/views.py", line 381, in get_filters field_path)[-1] File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/django/contrib/admin/utils.py", line 485, in get_fields_from_path fields.append(parent._meta.get_field(piece)) File "/home/vagrant/.virtualenvs/sepia/lib/python3.5/site-packages/django/db/models/options.py", line 619, in get_field raise FieldDoesNotExist('%s has no field named %r' % (self.object_name, field_name)) django.core.exceptions.FieldDoesNotExist: Region has no field named 'p' 中的联系人列表,我希望当用户ListView在任何联系人上,然后longClick弹出窗口应显示"呼叫"和&#34 ;发送短信"我为ContextMenu编写了代码,但ContextMenu仍未显示ContextMenu,请告诉我代码中缺少的内容。  这是longClick

MainaAtivity

2 个答案:

答案 0 :(得分:2)

从代码中删除longpress方法,希望它能正常工作

答案 1 :(得分:0)

尝试交换以下行:

@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) {
  super.onCreateContextMenu(menu, v, menuInfo);
  menu.setHeaderTitle("Select The Action");
  menu.add(0, v.getId(), 0, "Call");
  menu.add(0, v.getId(), 0, "Send SMS");
}

要:

@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) {
  menu.setHeaderTitle("Select The Action");
  menu.add(0, v.getId(), 0, "Call");
  menu.add(0, v.getId(), 0, "Send SMS");
  super.onCreateContextMenu(menu, v, menuInfo);
}

<强>更新

删除listView.setOnItemLongClickListener,因为您无法同时使用longclicklistener和上下文菜单。要显示上下文菜单,您只需在夸大​​视图后调用registerForContextMenu(listView)并覆盖onCreateContextMenu()以创建菜单,并onContextItemSelected()来处理用户操作。