본문 바로가기
🖥 Programming/📱 Android (Kotlin)

[kotlin] hideKeyboard, showKeyboard(키보드 내리기, 키보드 올리기, 키보드 숨기기, 키보드 자동 내리기, 키보드 자동올리기)

by MinChan-Youn 2022. 7. 15.

안녕하세요~ 챠니입니다! :)
이번에는 EditText에서 키보드를 보이기, 숨기기 방법에 대해서 알아보도록 하겠습니다.

키보드를 제어하는 방법에 대하여 구글링을 하다 보면 키보드가 올라가 있는 token을 찾아서 넣거나, EditText를 번번이 찾아야 하는 어려움 때문에 공통화가 쉽지 않은데요

그래서 이번에는 최대한 쉽게 접근하는 방법을 한번 알려드리겠습니다!

 

 

HideKeyboard 방법



코드를 보면서 이해하는게 가장 쉽겠죠?

코드는 다음과 같습니다.

 

fun hideKeyboard(activity: Activity){
    val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    imm.hideSoftInputFromWindow(activity.window.decorView.applicationWindowToken, 0)
}

activity를 인자로 하여 알아서 keyboard가 있는 Token 값을 찾아 내려주는 형식으로 이해하시면 되겠습니다.
계속해서 keyboard가 어떤 것인지 찾지 않아도 되고 현재 있는 activity만을 대입하면 알아서 Token을 찾아 내려주는 방법입니다.

더욱 더 쉽게 공통화를 할 수 있겠죠?

 

ShowKeyboard 방법



ShowKeyboard같은 경우는 조금 다릅니다. EditText를 받아서 처리를 해야 한다는 점인데요!

코드는 다음과 같습니다.

fun showKeyboard(editText: EditText){
    val imm = App.activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    imm.showSoftInput(editText, 0)
}

 

editText의 id값을 전달 받아서 올려줘야만이 해당 EditText에 정확히 값이 입력이 되겠죠?

 

hideKeyboard와는 다르니 방법을 꼭 참고해주세요!

 

 

 

hideKeyboard, ShowKeyboard 를 활용하는 방법



다음은 실제 제가 현업에서 사용하면서 이렇게 구성을 하면 편리하게 사용할 수 있었다는 방법을 소개해드리고자 합니다.

 

시작할때 Keyboard를 올리고, 해당 페이지를 종료하게되면 hideKeyboard를 구현하려고 했는데요

다음과 같이 구성을 하여 사용했습니다.

 

override fun onResume() {
    super.onResume()
    //키보드 올리기
    "EidtTextID".requestFocus()
    showKeyboard("EidtTextID")
}

override fun onDestroyView() {
	//키보드 내리기
    super.onDestroyView()
    Utils.hideKeyboard()
}

fun showKeyboard(editText: EditText){
    val imm = App.activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    imm.showSoftInput(editText, 0)
}

 

 

 

 

 

 

질문 또는 궁굼한 부분은 댓글을 남겨주세요! 친절하게 답변드리겠습니다!

응원의 댓글은 저에게 큰 힘이 된답니다! :)

즐거운 하루되세요!

 

깃허브 보러 놀러오세요 👇 (맞팔환영)

https://github.com/younminchan

 

younminchan - Overview

안드로이드 2년차 개발자 •⚽️/🎤/🥁/🖥/🏃‍♂️/🚴‍♂️/🤟 TechBlog⬇️ minchanyoun.tistory.com - younminchan

github.com