前回、Androidのキーボードのモードオプション、でキーボードのモードについて書きましたが、このエンターボタンが押された時の処理で嵌ったことがあったので覚書を。
キーボードのエンターボタンが押された時の処理を、EditText.OnEditorAction 等で拾う場合、実際の必要な処理を行う前に、
[java]
InputMethodManager#hideSoftInputFromWindw();
[/java]
を呼んで明示的にキーボードを非表示にしておかないと、例えば、そこから遷移した次の画面で、Viewが更新されないとか、dialog.show(); したのにダイアログが画面に表示されない、などの問題が起きるよようです。
どうやら、明示的にキーボードを消してやらないと、Activityのレイアウトがフォーカスを持っていないようだ。(次の画面に遷移すればもちろんキーボードはすでに消えているのだけど、内部的にはまだキーボードにフォーカスがあるのか????)
詳細未確認なので、認識違いだったらつっこみ入れてください。
0 Comments.