티스토리 뷰
반응형
이렇게 요청이 왔다 ㅎㅎ
( 자체개발앱이라서 애정이 있는 앱입니다 )
하,.. 고마우면서도 귀찮음이 동시에 몰려옴 ㅋㅋㅋ
가끔씩 요청사항이 오는 앱이긴 한데..
이번에 좀 색다로운 요청이라 포스팅 해봅니다~
핵심은 단축키 넣어달라인데 흠....
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에도 단축키 먹히려면 이렇게 하심 되요.
블루투스 키보드 없으신 분은 스마트폰에 유선 키보드 연결하셔서 테스트 하시면 됩니다.
728x90
'개발일지 (욕 + 반말 포함)' 카테고리의 다른 글
0x80090011 자격 증명을 검증할 수 없습니다 해결방법!! (0) | 2022.09.28 |
---|---|
npm nodemailer google example (구글계정으로 메일 보내기) (0) | 2022.06.26 |
nodejs, angular 파일 다운로드 진행률 구현하기 (0) | 2021.11.19 |
성능 좋은 전자파 차단기 (미친거 아닌가?) (2) | 2021.10.13 |
개발자의 의도를 무시 (0) | 2021.10.05 |
댓글