kotlinで端末上の戻るボタンを実装

戻るボタンを押したタイミングでデータを保存したり、Googleアナリティクスにイベントを送信したい場合、端末上の戻るボタンをKeyEventで拾う必要があります。

KeyEventUPDOWNで二回走るので一回だけ処理が実行されるようにKeyEventの判定を追加する必要があります。
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        // データバインディング
        binding = DataBindingUtil.bind(inflater.inflate(R.layout.fragment_send_mail_and_sms_setting, null))

        val view = binding?.root

        // 端末上の戻るボタン
        view?.apply {
            setOnKeyListener { _, keyCode, event ->
                if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_DOWN) {
                    backAction()
                    true
                } else {
                    false
                }
            }
            isFocusableInTouchMode = true
            requestFocus()
        }

        return view
    }
    
        // 戻るボタンアクション
    private fun backAction() {
     
    }

この記事が参考になれば幸いです。

日々、プログラムを書いたり・Twitterで出来事を発信したりしています。

Twitterのフォロワーも募集中です。
@cloverkizuna

 今後ともよろしくお願いします。