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を無効化してしまった、というわけですね・・・。
逆に、戻るボタンを押されても何もされたくない場合は有効だと思います。はい。