У меня странная ошибка.Android EditText imeOptions, создающий actionSearch, как actionDone?
У меня есть EditText, и я выполняю поиск с TextWatcher, когда я печатаю 3 буквы и выше, я выполняю поиск.
До недавнего времени я был нормальный EditText, и я хочу иметь значок поиска в моей клавиатуре, так что я добавил свой EditText в коде:
searchField.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
теперь имеет значок поиска, теперь к моей проблеме. При нажатии значка поиска все, что я хочу сделать, это закрыть клавиатуру. поиск не требуется.
вот мой код:
searchField.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_SEARCH)) {
hideSoftKeyboard();
}
return false;
}
});
hideSoftKeyboard является метод, который закрыть мою клавиатуру, и это код внутри:
public void hideSoftKeyboard() {
if (getActivity().getCurrentFocus() != null) {
InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0);
}
}
сейчас, моя клавиатура ДЕЛАЕТ близко, но по какой-то причине, За ней появляется «нормальная» клавиатура. клавиатура с иконкой поиска закрывается, но появляется клавиатура с значком ввода, и она ничего не набирает. Не связана ни с каким редактируемым текстом или чем-то, у меня есть только 1 текст редактирования на этом экране, и я не могу изобразить что случилось.
Если я вернусь к IME_ACTION_DONE, все снова отлично работает.
EDIT 1:
моя активность в манифесте:
<activity
android:name=".UI.activity.HomeActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Holo.Light.NoActionBar"
android:windowSoftInputMode="adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
и мой EditText в XML:
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/search_document_main"
android:typeface="serif"
android:visibility="invisible"
android:singleLine="true"
android:background="@color/top_bar_bg_color"
android:hint="Search" />
любая идея, что я делаю не так?
также, есть ли способ показать, что значок поиска без использования imeOption Search?
, когда вы возвращаете 'false', событие передается и не считается« потребляемым », поэтому ваш метод« hidKeyboard »снова открывает клавиатуру – thepoosh
, она по-прежнему остается неизменной даже при передаче истинного значения. – JozeRi
Сколько раз это событие называется? – thepoosh