0
我需要將自定義觸摸和硬件密鑰處理附加到SurfaceView
。我需要使用單獨的偵聽器(而不是將dispatchKeyEvent()
和dispatchTouchEvent()
方法添加到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
內部,因此我可以將我的按鍵偵聽程序添加到該按鈕中嗎?
完美,謝謝! –