KeyEventがUPとDOWNで二回走るので一回だけ処理が実行されるように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
今後ともよろしくお願いします。