入力完了時にエンターキーでキーボードを閉じる KeyEvent getSystemService hideSoftInputFromWindow

  • 投稿者:
  • 投稿カテゴリー:その他

入力完了時にエンターキーでキーボードを閉じるサンプル

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // activity_main.xml レイアウトの Viewsをbindingに取得する
    binding = ActivityMainBinding.inflate(layoutInflater)
    // アプリのビュー階層のルート(binding.root)を渡してコンテンツビューの取得
    setContentView(binding.root)

    // Key押下時のリスナー
    binding.costOfServiceEditText.setOnKeyListener {
            view, keyCode, _ -> handleKeyEvent(view, keyCode)
    }
}

// キーボードを閉じる
private fun handleKeyEvent(view: View, keyCode: Int): Boolean {
    if (keyCode == KeyEvent.KEYCODE_ENTER) {
        // Hide the keyboard
        val inputMethodManager =
            getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0)
        return true
    }
    return false
}

トレーニング > KOTLIN を用いた ANDROID の基本 > レイアウト > ユーザー入力2 > より洗練されたユーザーエクスペリエンスを作成する > 6. ユーザーエクスペリエンスの向上