Я использую то, что должно быть довольно простым кодом, но он просто не хочет работать. Блокирует ли блок ОС это?
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU)
{
longOptionPress = true;
openOptionsMenu();
return true;
}
return super.onKeyLongPress(keyCode, event);
}
Вы должны вызвать startTracking()
в событии из обычного метода onKeyPress()
:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
event.startTracking();
return true;
}
return super.onKeyDown(keyCode, event);
}
См. также вопрос, который я задал и ответил некоторое время назад.
Если это ListView, вам нужно использовать onCreateContextMenu
.
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo)