NativeActivity override onKeyDown()

2019-09-11 07:53发布

I having problem with a NativeActivity subclass I am working on, my goal would be to catch and handle key events from the Java code instead of native code (this is mainly due because this), unfortunately I can not see the Log() present in the onKeyDown method though the onCreate() log is being printed and the log prints I have placed in the native code are as well. It seems that the onKeyDown of my NativeActivity subclass is never called.

Any idea?

public class CNativeActivity extends NativeActivity{                                                                                                                                                                                                                                                                                                                                
        private final static String TAG = "CNativeActivity";                                                                                                                            

        protected void onCreate(Bundle savedInstanceState) {                                                                                                                                  
            Log.v(TAG, "onCreate");                                                                                                                                                          
            super.onCreate(savedInstanceState);                                                                                                                                              
        }                                                                                                                                                                                    

        @Override                                                                                                                                                                            
        public boolean onKeyDown(int keyCode, KeyEvent event) {                                                                                                                              
            Log.v(TAG, "onKeyDown");                                                                                                                                                          
            return true;                                                                                                                                                                      
        }
}   

1条回答
戒情不戒烟
2楼-- · 2019-09-11 08:19

add implements KeyEvent.Callback

public class @activity@ extends NativeActivity implements KeyEvent.Callback  {
   public boolean onKeyMultiple (int keyCode, int count, KeyEvent event)
}

KeyEvent.Callback overrides happen after the native AInputEvent dispatching though; so basically you'll have to ignore all old dipatching and implement something new if you want to get the extended keys like ÷,√,€,£, …

查看更多
登录 后发表回答