안드로이드 개발 질문/답변
(글 수 45,052)
제가 다른 클래스에서 액티비티에 있는 onKeyDown() 이벤트함수를 호출했습니다.
KeyEvent e = new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_DPAD_DOWN);
mFaceDetect.onKeyDown(KeyEvent.KEYCODE_DPAD_DOWN,e);
이와 같은 방법으로 호출을 해서 keyDown()가 호출되긴 하는데요...
코드를 보시면 알겠지만 방향키 호출입니다.
특별히 다른 일 없이 그대로 방향키가 호출되면 됩니다...
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(KeyEvent.ACTION_DOWN == event.getAction() && keyCode == KeyEvent.KEYCODE_DPAD_DOWN){
super.onKeyDown(keyCode, event);
}
return super.onKeyDown(keyCode, event);
}
그래서 기본 함수 형태로 했는데 아래방향 키가 안눌러지네요..
분명 keyDown()에 ACTION_DOWN 도 호출되고KEYCODE_DPAD_DOWN 도 호출 되었거든요
근데 왜 아래방향으로 키가 눌려지는 현상이 안일어날까요?
super.onKeyDown(keyCode, event);
이 함수 쓰는 것이 맞나요?
아님 제가 틀린건가요?
아래방향키가 KEYCODE_DPAD_DOWN 맞나요?
실제 아래방향키를 눌러보니까 로그가 안뜨네요? 아래방향키 keyCode가 어떻게 되나요?
KeyEvent e = new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_DPAD_DOWN);
mFaceDetect.onKeyDown(KeyEvent.KEYCODE_DPAD_DOWN,e);
이와 같은 방법으로 호출을 해서 keyDown()가 호출되긴 하는데요...
코드를 보시면 알겠지만 방향키 호출입니다.
특별히 다른 일 없이 그대로 방향키가 호출되면 됩니다...
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(KeyEvent.ACTION_DOWN == event.getAction() && keyCode == KeyEvent.KEYCODE_DPAD_DOWN){
super.onKeyDown(keyCode, event);
}
return super.onKeyDown(keyCode, event);
}
그래서 기본 함수 형태로 했는데 아래방향 키가 안눌러지네요..
분명 keyDown()에 ACTION_DOWN 도 호출되고KEYCODE_DPAD_DOWN 도 호출 되었거든요
근데 왜 아래방향으로 키가 눌려지는 현상이 안일어날까요?
super.onKeyDown(keyCode, event);
이 함수 쓰는 것이 맞나요?
아님 제가 틀린건가요?
아래방향키가 KEYCODE_DPAD_DOWN 맞나요?
실제 아래방향키를 눌러보니까 로그가 안뜨네요? 아래방향키 keyCode가 어떻게 되나요?
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT)
//
else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT)
//
else if (keyCode == KeyEvent.KEYCODE_DPAD_UP)
//
else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN)
//
return super.onKeyDown(keyCode, event);
}
이렇게해서 사용중입니다. 참고하세요 4방향 버튼 다 잘눌려요