Android/공부
에디트텍스트(EditText) 관련 짜투리 지식 2 (한 줄로 입력받기, 엔터키 이벤트, 키보드 사라지게 만들기)
닉네임간편
2021. 12. 8. 09:26
1. 한 줄로 입력받기
xml 파일에서 maxLines 속성을 1로 설정하면 한 줄로 입력받을 수 있습니다.
이때 inputType을 반드시 명시해주어야만 제대로 동작합니다.
예를 들어 inputType을 text로 설정해주면 됩니다.
2. 키보드 사라지게 만들기
val inputMethodManager: InputMethodManager =
getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
// 키보드 사라지게 하는 코드
inputMethodManager.hideSoftInputFromWindow(currentFocus!!.windowToken, 0)
inputMethodManager를 먼저 생성한 후, 이를 사용해서 키보드를 사라지게 할 수 있습니다.
3. 엔터키 이벤트
imeOptions 속성을 사용하면 엔터키 입력에 따라 다양한 작업을 수행할 수 있습니다.
예를 들어 imeOptions가 actionDone일 경우, 액티비티 코드에서 다음과 같이 처리할 수 있습니다.
binding.editUserName.setOnEditorActionListener(object : TextView.OnEditorActionListener {
override fun onEditorAction(view: TextView?, actionid: Int, event: KeyEvent?): Boolean {
if (actionid == EditorInfo.IME_ACTION_DONE) {
val text = binding.editUserName.text.toString()
Toast.makeText(applicationContext, text, Toast.LENGTH_SHORT).show()
// 키보드 사라지게 만들기
val inputMethodManager: InputMethodManager =
getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(currentFocus!!.windowToken, 0)
return true
}
return false
}
})
이렇게 되면 사용자가 엔터키를 누르면 현재 입력했던 문자를 토스트 메시지로 띄우고, 키보드를 사라지게 만들 수 있습니다.
728x90
반응형