본문 바로가기

Android/공부

에디트텍스트(EditText) 관련 짜투리 지식 2 (한 줄로 입력받기, 엔터키 이벤트, 키보드 사라지게 만들기)

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
반응형