読者です 読者をやめる 読者になる 読者になる

Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

Android開発時に戻るボタンが効かないって時はKeyイベントを確認しよう

非常につまらないバグを作ってしまいました。

あるFragmentに限りStartActivityすると戻るボタンを押しても戻ってくれないという現象に遭遇してしまいました。原因は、EditTextにしこんだKeyイベントリスナーでした・・・。

v.setOnKeyListener(new OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
          //この戻り値は絶対にfalseにしておくこと!   
          if(event.getAction() != KeyEvent.ACTION_DOWN) {
                return false;
            }
         }
    });

keyイベントリスナーは戻り値がtrueだと、その発生したイベント以降のKeyEventの伝搬をストップしてしまいます。つまり、僕は上記の戻り値をtrueにしたので、戻るボタンのKeyEventを無効化してしまった、というわけですね・・・。

逆に、戻るボタンを押されても何もされたくない場合は有効だと思います。はい。