onCreateContextMenu не вызывается

похоже, что onCreateContextMenu не вызывается вообще. В моем onCreate для моей ListActivity у меня есть:

list = getListView();
registerForContextMenu(list);

(Я знаю, что это избыточно, и я только что прошел getListView() с теми же результатами).

вот мой onCreateOntextMenu;

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    Log.d("LM", "onCreateContextMenu");

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.context_landmarks, menu);
}

журнал никогда не генерируется. У кого-нибудь есть предложения?

6 ответов


моя мысль-ListView, перехватывающий событие и не входящий в поведение contextMenu. Это имеет смысл для меня, потому что поведение OnItemLongClickListener перекрывает contextMenu. Если нет, то как он может распознавать между contextMenu и OnItemLongClickListener?


попробуйте найти registerForContextMenu (list); как ur последний метод для вызова метода onCreate. Я имею в виду, что этот метод должен быть вызван после того, как адаптер списка вызывается не раньше.


просто удалить youwidget.setonLongclicklistener и yourwidget.setLongClickable

и затем добавить registerforContextmenu(yourwidget) на onCreate() затем добавьте код в соответствии с используемым виджетом.

надеюсь, это будет полезно.


Я звонил View.setOnClickListener(listener) на Adapter.getView(...), когда он должен быть!--2--> чтобы избежать конфликта с контекстным меню.

В общем, я уверен, что OnItemClickListener более оптимизирован, тем более, что используется только один экземпляр прослушивателя вместо создания нового экземпляра каждый время создания или повторного использования представления.


У меня была эта проблема, и я мог решить ее, только обеспечив

  1. это потому, что resp. Действие зарегистрировало представления, то же действие должно также переопределить onCreateContextMenu (); делать это во фрагменте не будет работать
  2. поскольку я использовал дополнительный фрагмент, создавая адаптер (и регистрируясь с ним), фрагмент не должен переопределять действие onContextItemSelected ().

Я рассматриваю возможность отказа от длительного нажатия всплывающего окна в пользу кнопки в стиле Youtube в правом поле карт выскакивает меню, которое не исчезает все остальное в фоновом режиме---каков термин поиска для этого кстати?


нужно позвонить registerForContextMenu(View view) метод onCreate(Bundle savedInstanceState).