Intereting Posts
Кнопка Android textAppearance Программно временно отключить автоматическое обновление Как найти последнюю активность, с которой текущая активность открывается в android? Есть ли открытая библиотека OCR или sdk (бесплатно) для Android и iOS? Android: Как сделать вкладку флип, как рынок Android? Определить рамки opencore или stagefright для медиапланера? BitmapFactory возвращает большее изображение, чем источник Приложение Кордовы, которое не использует push-уведомления: «Отсутствие права на уведомление push-уведомления» Как открыть музыкальный сборщик? Android-теги push на удаленном компьютере Google api console удалила мои зарегистрированные приложения Получение тяжелых данных бросает окно курсора: окно является полной ошибкой Android – поставщик файлов – отказ в разрешении Android Studio 0.3.6 проблемы рендеринга при использовании spinner with android: entries = "@ array / some_array" используется Android.os.BadParcelableException: ClassNotFoundException при unmarshalling: com.facebook.flatbuffers.helpers.FlatBufferModelHelper $ LazyHolder

EditText требуется дважды щелкнуть, чтобы открыть диалоговое окно поиска

Мое приложение имеет два элемента EditText. Оба реализуют OnClickListener следующим образом:

editText1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Open search dialog doSomeStuff(); } }); 

doSomeStuff() означает: doSomeStuff() на текстовое поле открывает диалоговое окно поиска через onSearchRequested() . Результат поиска записывается обратно в текстовое поле.

Это отлично работает, но если я нажму на другое текстовое поле, мне нужно дважды щелкнуть до появления диалогового окна поиска. Откуда это происходит и как я могу изменить это, чтобы диалоговое окно поиска появилось при нажатии только один раз?

Solutions Collecting From Web of "EditText требуется дважды щелкнуть, чтобы открыть диалоговое окно поиска"

Для полей EditText лучше использовать OnKeyListener. С переданным в KeyEvent вы можете реагировать по-разному в зависимости от того, как поле EditText получило щелчок / получить фокус. В противном случае вы также можете попробовать OnFocusChangeListener или если вы хотите использовать TextWatcher для просмотра каждого добавленного символа, вы можете реализовать TextWatcher и использовать addTextChangedListener.