반응형
EditText showSoftInput()으로 키보드를 보이게 하려고 할 때,
작동 안 하는 경우가 발생한다.
그런 경우는 EditText에 포커스가 없기 때문에 발생하는 것이다.
해결 방법은 showSoftInput()을 호출하기 전에 EditText에 requestFocus()로 포커스를 주는 방법이다.
requestFocus() Android 공식 문서 설명
아래 링크에서 requestFocus 검색
developer.android.com/reference/android/view/View
예제 코드는 아래와 같다.
// 초기화
EditText et = (EditText)findViewById(R.id.et);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
// 키보드 보이기 시, showSoftInput() 호출하기 전 requestFocus() 호출
et.requestFocus();
imm.showSoftInput(et, InputMethodManager.SHOW_FORCED);
만약 requestFocus()로 포커스를 주었음에도 showSoftInput()이 작동되지 않는다면
requestFocus() 호출 후 타이머나 sleep 등을 사용해
간 텀을 조금 준 후에 showSoftInput()을 호출하면 정상적으로 작동될 것이다.
반응형
'IT > 안드로이드+JAVA' 카테고리의 다른 글
[Android] Play스토어 앱 업로드 절차 (0) | 2021.03.11 |
---|---|
[Android] AES256 암호화 복호화 (2가지 방법) (0) | 2021.01.24 |
[Android Studio] 원격 디버깅, 로그 출력 (adb) (4) | 2020.12.20 |
[안드로이드] SHA256 해시 알고리즘 예제 (0) | 2020.12.08 |
[안드로이드] 앱 버전 비교 예제 (버전 표기법, 규칙) (0) | 2020.12.02 |