Я хочу обнаружить событие Back Key в моем CustomView (например, EditText). Во многих случаях это было достигнуто путем переопределения onKeyDown()
или dispatchKeyEvent()
при условии, что мой CustomView получает фокус.
CustomView.java
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if( keyCode == KeyEvent.KEYCODE_BACK) { ..... return true; }else{ return super.onKeyDown(keyCode, event); } }
Однако, если Activity, включая CustomView, также переопределяет onKeyDown()
или dispatchKeyEvent()
, он не может много работать. То есть, активность получила Back-KeyEvent до CustomView.
Я предпочитаю поймать Back-KeyEvent перед действием.
Скажите мне несколько идей об этой проблеме. Спасибо.
Вам необходимо реализовать это, чтобы захватить кнопку BACK перед отправкой в IME:
http://developer.android.com/reference/android/view/View.html#onKeyPreIme(int,android.view.KeyEvent )
Переопределите onKeyDown в своей деятельности и верните false . Так что событие распространяется и на другие виды.
Если вы обработали событие, верните true. Если вы хотите разрешить обработку события следующим приемником, верните значение false.