마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

액티비티 처음 실행시 키보드 자동 띄우기

0 추천

windowsSoftInputMode 에서 stateVisible 이나 stateAlwaysVisible 속성을 주면 액티비티가 처음 실행시 말고도 홈화면으로 나갔다가 다시 앱을 켜는 경우에도 키보드가 자동으로 올라옵니다...

앱을 처음 실행했을 경우에만 키보드를 띄우고 싶어서

    @Override
    protected void onStart() {
        searchBox.requestFocus();
        InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        // im.showSoftInput(searchBox, 0);
        im.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
        super.onStart();
    }

이런 식으로도 시도해봤는데 이렇게 할 경우에는 키보드가 올라오지 않더군요. 키보드를 띄우는 코드 자체는 버튼에 onClickListener를 등록해서 테스트 해보면 정상적으로 키보드가 올라오는 것으로 보아 문제가 없는 듯 한데...

앱을 처음 실행 했을 때에만 키보드를 띄워주려면 어떻게 해야 할까요...?

DEViA (120 포인트) 님이 2018년 5월 12일 질문
요렇게 바꿔보세요
InputMethodManager mgr = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
    if(mgr != null) {
      mgr.showSoftInput(searchBox, InputMethodManager.SHOW_IMPLICIT);
    }
여전히 작동하지 않는군요 ㅠㅠ 이번엔 키보드를 띄우는 코드 자체가 동작하지 않는 것 같기도 하고요... 어떻게 해야 할지... 어렵네요 ㅠㅠ

1개의 답변

0 추천
특정 view 하나를 잡고 postDelayed 를 이용해서 띄우세요

가령 seachedBox 가 뷰라면

searchedBox.postDelayed(() -> {

//  TODO, SHOW KEYBOARD

}, 500);
aucd29 (218,390 포인트) 님이 2018년 5월 14일 답변
...