본문 바로가기

안드로이드

Android EditText 입력창(SoftInput) 숨기는 방법

안드로이드 개발을 하다보면 자주 사용하는 EditText가 있다. 그런데 사용자는 값을 입력 후 검색 혹은 로그인, 저장 등의 활동을 할 것이다. 이 때 EditText를 숨겨주지 않는다면, 사용자는 해당 앱에 대해 매우 불편함을 느낄 것이다.

 

해결 방법은 간단하다.

안드로이드에서는 InputMethodManager를 제공하는데 해당 클래스의 메서드를 활용하여, SoftInput(입력화면)을 숨기거나 가져올 수 있다.

 

해당 메서드는 아래와 같다.

 

public boolean hideSoftInputFromWindow(IBinder windowToken, int flags)

입력창을 숨기는 메서드

public boolean showSoftInput(View view, int flags)

입력창을 보여주는 메서드

 

간단한 예로 아래와 같이 사용하면 된다.

fun softInputControll(view: View, wantToShow: Boolean) {
	val manager = view.context?.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
    if (manager != null) {
    	if (wantToShow)
        	manager.showSoftInput(view, 0)
        else
    		manager.hideSoftInputFromWindow(view.windowToken, 0)
    }
}