備忘メモ📝
Use setOnKeyListener
view.setOnKeyListener { v, keyCode, event ->
if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_DOWN) {
// as you like :)
dismiss()
true
} else {
false
}
}
view.isFocusableInTouchMode = true
view.requestFocus()
途中までview.requestFocus()
を書き忘れていて動かなかったので、お忘れなく。👾
Use apply
Kotlinのスコープ関数apply
を使うと、よりスッキリ書くことができます。(red_fat_daruma 氏、アドバイスありがとうございます🙇)
view.setOnKeyListener { v, keyCode, event ->
(keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_DOWN).apply {
// as you like :)
dismiss()
}
}
view.isFocusableInTouchMode = true
view.requestFocus()
Reference
- Android FragmentでBack key(戻るボタン)のeventをハンドリングする
http://android.tecc0.com/?p=201 - Android : WebView 覚え書き(ズーム関連の機能の有効化、Progress の表示、Back Key のハンドリングなど)
http://increment.hatenablog.com/entry/2015/11/03/205049