안드로이드 개발 질문/답변
(글 수 45,052)
surfaceView화면에서 softkeyboard를 띄우기 위해 아래와 같은 코드를 삽입하였습니다.
InputMethodManager imm =
(InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
boolean ret = imm.showSoftInput(this, InputMethodManager.SHOW_FORCED);
ret 값이 false가 넘어오면서 keyboard가 뜨지 않습니다..
그런데 H/W 키보드의 navi키를 누른 후에 (KEYCODE_DPAD_LEFT/RIGHT/UP/DOWN 이벤트 발생) sufaceView화면에서 마우스 클릭하면 softKeyboard가 뜹니다..
키보드가 뜬 이후에도 key를 누르면 key값이 onKeyDown/onKeyUp() 으로 전달 되지 않다가, navi키를 누른 후에 key를 누르면 onKeyDown/onKeyUp()가 호출이 됩니다...
softkeyboard를 띄울때 특별한 루틴이 없어 보이는데, 한번에 keyboard가 뜨지 않는 이유가 뭘까요..?
InputMethodManager imm =
(InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
boolean ret = imm.showSoftInput(this, InputMethodManager.SHOW_FORCED);
ret 값이 false가 넘어오면서 keyboard가 뜨지 않습니다..
그런데 H/W 키보드의 navi키를 누른 후에 (KEYCODE_DPAD_LEFT/RIGHT/UP/DOWN 이벤트 발생) sufaceView화면에서 마우스 클릭하면 softKeyboard가 뜹니다..
키보드가 뜬 이후에도 key를 누르면 key값이 onKeyDown/onKeyUp() 으로 전달 되지 않다가, navi키를 누른 후에 key를 누르면 onKeyDown/onKeyUp()가 호출이 됩니다...
softkeyboard를 띄울때 특별한 루틴이 없어 보이는데, 한번에 keyboard가 뜨지 않는 이유가 뭘까요..?
대충 softkeyboard를 띄우고 싶어하시는거 같은데..
InputMethodManager InputMethodManager;
mInputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
mInputManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_NOT_ALWAYS);
이렇게 하면 키보드가 나옵니다..