IT/안드로이드+JAVA

[Android] EditText showSoftInput 작동 안할 때 해결 방법

안경 쓴 귀니 2021. 1. 9. 13:35
반응형

EditText showSoftInput()으로 키보드를 보이게 하려고 할 때,

작동 안 하는 경우가 발생한다.

그런 경우는 EditText에 포커스가 없기 때문에 발생하는 것이다.

 

해결 방법은 showSoftInput()을 호출하기 전에 EditText에 requestFocus()로 포커스를 주는 방법이다.

 

requestFocus() Android 공식 문서 설명

아래 링크에서 requestFocus 검색

developer.android.com/reference/android/view/View

 

View  |  Android 개발자  |  Android Developers

 

developer.android.com

 

예제 코드는 아래와 같다.

// 초기화
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()을 호출하면 정상적으로 작동될 것이다.

반응형