예전에 포스팅을 했을 때 android:imeOptions에 대해 적은 적이 있다.
android:imeOptions는 키보드 속성(완료, 검색, 전송 등등)을 사용하는 건데
android:imeOptions = "actionSearch" 를 사용하면
키보드 자판에 '검색'버튼을 사용할 수 있게 된다.
그런데 검색창(editText)에 string값을 입력하고 키보드의 검색버튼을 누르게 되면
10번 중에 1번정도는 string값이 선택되어 편집모드로 노출된다.
이유가 무엇일까?
원래는 layout에만 추가해도 안드로이드에서 알아서 검색 기능을 제공을 해주는데
뭔가 꼬였나보다.
그래서 자바코드에서 action listener를 만들어줬더니 잘 된다.
<EditText android:imeOptions="actionSearch" />
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
requestSearch();
return true;
}
return false;
}
});