안드로이드[Java | Kotlin]
Adapter 내부에서 키보드 올리고 내리기(feat. EditText)
티라미주
2022. 4. 25. 19:03
어댑터에 context를 전달하고 context에서 getSystemService를 호출한다
이거 찾는데 30분 헤멘듯,,
원래대로 하면 Create function 'getSystemService' 오류가 나온다
//올리기
val imm:InputMethodManager = mContext.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(holder.distance_input, InputMethodManager.SHOW_FORCED)
//숨기기
val imm:InputMethodManager = mContext.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(EditText이름.windowToken,0)
일반 엑티비티에서는
//올리기
val imm:InputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(holder.distance_input, InputMethodManager.SHOW_FORCED)
//숨기기
val imm:InputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(this.windowToken,0)
--- 추가로
EditText 엔터시 다음 포커스 xml코드에 밑에 옵션 추가하고,
android:imeOptions="actionDone"
android:inputType="text"
android:maxLines="1"
코틀린 파일에 다음을 추가
override fun onEditorAction(p0: TextView?, p1: Int, p2: KeyEvent?): Boolean {
if(p1==EditorInfo.IME_ACTION_DONE){
//옵션입력
}