Мне нужно прикрепить пользовательскую обработку сенсорного и аппаратного ключа к SurfaceView
. Мне нужно использовать отдельные прослушиватели (вместо того, чтобы добавлять dispatchKeyEvent()
иметоды к SurfaceView
), так как я буду предоставлять функции обработки пользовательских событий третьей стороне для использования на своих SurfaceView
, и я хочу сохранить ее отдельно.Прикрепление View.OnKeyListener к SurfaceView
Мой заказ касание обработчик событий работает отлично, но обработчик события ключ не поймать каких-либо событий. Вот как я их установка:
public MyGLSurfaceView(Context c, AttributeSet a) {
// Other setup...
setOnTouchListener(new MyTouchListener()); // Works
setOnKeyListener(new MyKeyListener()); // No events captured
}
А вот мой ключ слушатель:
public class MyKeyListener implements View.OnKeyListener {
@Override
public boolean onKey(View v, int key, KeyEvent e) {
System.out.println("A hardware key was pressed!");
return true;
}
}
Должен ли я прикреплять ключ слушателя к другому объекту, чем SurfaceView
? Вид находится внутри Dialog
, так что я могу добавить к нему своего слушателя клавиш?
Отлично, спасибо! –