ソフトキーボードを表示するには
テキスト入力欄をタップすると自動的にソフトキーボードが表示される。
メニューからテキスト入力欄にフォーカスを合わせたときも自動的にソフトキーボードが
表示されて欲しかったのだが、フォーカスを合わせるだけでは表示されなかった。
ソフトキーボードを表示する方法を調べてみると、InputMethodManagerクラスの
toggleSoftInputメソッドを使うと表示できることがわかった。
InputMethodManager manager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); manager.toggleSoftInput(1, InputMethodManager.SHOW_IMPLICIT);
XPERIA(Android2.1)だと上記ソースコードで問題なかったのだが、XPERIA(Android1.6)で上記ソースコードを実行すると
ソフトキーボードがうまく表示されないことがあった。
回避策として、一旦ソフトキーボードを閉じた後に表示することにした。
InputMethodManager manager =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
manager.hideSoftInputFromWindow(EditText.getWindowToken(), 0);
manager.toggleSoftInput(1, InputMethodManager.SHOW_IMPLICIT);