개발일지 (욕 + 반말 포함)
안드로이드 앱 요청사항: 단축키를 넣어달라?
SofKaints
2021. 12. 19. 13:02
반응형

이렇게 요청이 왔다 ㅎㅎ
( 자체개발앱이라서 애정이 있는 앱입니다 )
하,.. 고마우면서도 귀찮음이 동시에 몰려옴 ㅋㅋㅋ
가끔씩 요청사항이 오는 앱이긴 한데..
이번에 좀 색다로운 요청이라 포스팅 해봅니다~
핵심은 단축키 넣어달라인데 흠....
100% 이해가 되는 앱이긴 합니다
글자를 많이 적다보니 터치로만 하기에는 힘들긴 하죠..
그래서 구글링 해보니 있긴 있습니다~~~
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && event.isShiftPressed()) {
if (event.getKeyCode() == 22) { //->
but_next.performClick();
} else if (event.getKeyCode() == 21) { //<-
but_prev.performClick();
} else if (event.getKeyCode() == 30) { //b
et_content.clearFocus();
} else if (event.getKeyCode() == 20) { //아래쪽 화살표
et_content.clearFocus();
this.hideKeypad();
} else if (event.getKeyCode() == 33) { //e
this.contentClear();
} else if (event.getKeyCode() == 29) { //a
this.hideKeypad();
but_showAnswer.performClick();
} else if (event.getKeyCode() == 34) { //f
et_content.requestFocus();
}
}
return super.dispatchKeyEvent(event);
}
onKeyUp & onKeyDown 등 api 함수들이 있는데
제일 먼저 검색된게 디스패치키이벤트 함수가 나왔네요
여튼 테스트 해보니 잘됩니다.
문제는 단축키라서 ctrl 또는 alt 키로 만드는데
이상하게 컨트롤, 알트키가 안먹힙니다???
이유는 모르기에 넘어가고 shift키는 먹힙니다;;
참고로 edittext에 포커스 잡힌상태에서는 단축키가 잘 안먹힙니다;;
edittext만 없으면 단축키 잘먹힙니다.
또. 키패드가 영문일땐 잘먹히는데 한글일땐 잘 안됩니다 ㅅㅂ........
또. 에뮬레이터에선 한/영 둘다 잘되는데 실제 디바이스에선 (한글에선) 잘 안됩니다 ㅋㅋㅋㅋㅋㅋ
추가로
AlertDialog ad = builder.create();
ad.setOnKeyListener((dialog, keyCode, event) -> {
if (event.getKeyCode() == 33) { //e
ad.dismiss();
}
return false;
});
dialog에도 단축키 먹히려면 이렇게 하심 되요.
블루투스 키보드 없으신 분은 스마트폰에 유선 키보드 연결하셔서 테스트 하시면 됩니다.
반응형