2017-12-20 9 views
1

하나의 버튼과 edittext가 있습니다. 사용자가 edittext에 입력을 완료하고 버튼을 누르면 소프트 키보드를 닫고 싶습니다.kotlin의 SoftinputKeyboard 닫기/숨기기

또는 가이드 또는 참조 링크.

+1

가능한 복제 (https://stackoverflow.com/questions/41790357/close-hide-the-android-soft-keyboard-with-kotlin) – R2R

답변

1

나는 약간 @Serj Ardovic

private fun hideKeyboard(view: View) { 
    view?.apply { 
     val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager 
     imm.hideSoftInputFromWindow(view.windowToken, 0) 
    } 
} 

의 응답을 수정

1

전화 시스템 키보드를 숨기려면이 기능은 : 그 정말 내 요구 사항에 대한 작동하기 때문에

fun View.hideKeyboard() { 
    val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager 
    imm.hideSoftInputFromWindow(windowToken, 0) 
} 
+0

답장을 보내 주셔서 감사합니다. 그것은 나를 위해 작동합니다. –

+0

@ RushabhShah - stackoverflow.com, 대답은 당신을 도왔다면, 그것을 "정답"으로 표시해야합니다 –

0
fun hideSoftKeyboard(mActivity: Activity) { 
     // Check if no view has focus: 
     val view = mActivity.currentFocus 
     if (view != null) { 
      val inputManager = mActivity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager 
      inputManager.hideSoftInputFromWindow(view.windowToken, 0) 
     } 
    } 

    fun showKeyboard(yourEditText: EditText, activity: Activity) { 
     try { 
      val input = activity 
        .getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager 
      input.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT) 
     } catch (e: Exception) { 
      e.printStackTrace() 

     } 
    } 
0

당신 모두 EditText을 확장 할 수 있습니다. 새로운 기능으로 언제든지 포커스가있을 때 소프트 키보드를 숨길 수 있습니다. EditText이 유실되었습니다. 당신이 키보드 숨기기를 원하는 경우, 일부 EditText에 대한 포커스가 손실 될 때, 단지 우리가 추가 또는 여기에 우리의 자신의 OnFocusLostListener

fun EditText.hideSoftKeyboardOnFocusLostEnabled(enabled: Boolean) { 
    val listener = if (enabled) 
     OnFocusLostListener() 
    else 
     null 
    onFocusChangeListener = listener 
} 

을 제거 EditText에 대한 확장에서이 EditText

editText.hideSoftKeyboardOnFocusLostEnabled(true) 

에 대한 코드 줄을 사용 연결된 View에 대한 포커스가 손실되면 키보드를 숨기는 OnFocusLostListener 구현입니다.

class OnFocusLostListener: View.OnFocusChangeListener { 
    override fun onFocusChange(v: View, hasFocus: Boolean) { 
     if (!hasFocus) { 
      val imm = v.context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager 
      imm.hideSoftInputFromWindow(v.windowToken, 0) 
     } 
    } 
} 
[코 틀린와의 긴밀한/숨기기 안드로이드 소프트 키보드]의