EditTextで入力完了したら、ソフトキーボード閉じて処理を実行する

忘れないようにメモ。

例えば検索条件をEditTextに入力する場合、
ユーザビリティ的にはソフトキーボードで入力完了後(EnterKey押下時)に検索ボタンを押さなくても自動的に検索が始まるのが好ましい。
また、ソフトキーボードは自動的に閉じられると良い。

コードは以下のとおり。

EditText searchEdit = (EditText) findViewById(R.id.search_edit);
				
searchEdit.setOnKeyListener(new OnKeyListener() {
	@Override
	public boolean onKey(View v, int keyCode, KeyEvent event) {

               //EnterKeyが押されたかを判定
		if (event.getAction() == KeyEvent.ACTION_DOWN
				&& keyCode == KeyEvent.KEYCODE_ENTER) {

                        //ソフトキーボードを閉じる
			InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
			inputMethodManager.hideSoftInputFromWindow(v.getWindowToken(), 0);

                        //検索処理的な何か
			doSomething();

			return true;
		}
		return false;
	}
});