EditText등에서 키 입력 후킹하기

EditText에 포커스가 가 있을 때에는 onBackPressed 등에서 이벤트가 잡히지 않는다.
이때는 dispathKeyEventPreIme를 사용할 수 있다.

@Override
public boolean dispatchKeyEventPreIme(KeyEvent event) {
    if (mContext != null) {
        InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
        if (imm.isActive() && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
            // 뭔가의 동작
        }
    }
    return super.dispatchKeyEventPreIme(event);
}

FacebookTwitterGoogle+