java - Android NDK Capturing Key Events -
i have android ndk game (ndk 4.) of code in c++ (it's port) in java have activity , glsurfaceview override ontouchevents. i'm trying figure out how receive key press events can forward them on native code handled.
i tried having view implement onkeylistener onkey() never called. tried overriding onkeydown() , onkeyup() in view no success. missing something?
update
the view i'm using it:
public class fooview extends glsurfaceview implements surfaceholder.callback, onkeylistener { private gamerenderer _renderer; private gamelistener _listener; public fooview(context context) { super(context); this._renderer = new gamerenderer(); setrenderer(this._renderer); this._listener = new gamelistener(context); baselib.setlistener(this._listener); } @override public boolean ontouchevent(final motionevent event) { // touch code... } @override public boolean onkeydown(int keycode, keyevent event) { log.d("testing", "onkeydown event java"); return super.onkeydown(keycode, event); } @override public boolean onkeyup(int keycode, keyevent event) { log.d("testing", "onkeyup event java"); return super.onkeyup(keycode, event); } @override public boolean onkey(view view, int keycode, keyevent event) { log.d("testing", "onkey event java"); return true; } }
try this:
@override public boolean dispatchkeyevent(keyevent event) { // // send event.getaction() ndk code // if(<ndk code processed it>) return true; // default behavior else return super.dispatchkeyevent(event); }
Comments
Post a Comment