EditText необходимо дважды щелкнуть, чтобы открыть диалоговое окно поиска
В моем приложении есть два элемента EditText. Оба реализуют OnClickListener следующим образом:
editText1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Open search dialog
doSomeStuff();
}
});
doSomeStuff()
означает: нажатие на текстовое поле открывает диалоговое окно поиска через onSearchRequested()
. Результат поиска записывается обратно в текстовое поле.
Это отлично работает, но если я нажму на другое текстовое поле, мне нужно дважды щелкнуть до появления диалогового окна поиска. Откуда это происходит и как я могу изменить это, чтобы диалоговое окно поиска появилось при нажатии только один раз?
Ответы
Ответ 1
Для полей EditText лучше использовать OnKeyListener. С переданным в KeyEvent вы можете реагировать по-разному в зависимости от того, как поле EditText было нажато/получить фокус. В противном случае вы также можете попробовать OnFocusChangeListener или если вы хотите использовать TextWatcher для просмотра каждого добавленного символа, вы можете реализовать TextWatcher и использовать addTextChangedListener..