Как обнаружить Back Key в моем CustomView

Я хочу обнаружить событие 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.