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.