ソフトキーボードを表示するには

テキスト入力欄をタップすると自動的にソフトキーボードが表示される。
メニューからテキスト入力欄にフォーカスを合わせたときも自動的にソフトキーボードが 表示されて欲しかったのだが、フォーカスを合わせるだけでは表示されなかった。
ソフトキーボードを表示する方法を調べてみると、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);