В настоящее время у меня есть какое-то действие, связанное с тем, когда пользователь вводит что-то в AutocompleteTextView.Однако я хочу, чтобы действие регистрировалось только в том случае, если пользователь перестал печатать.По сути, я не хочу, чтобы действие происходило, пока пользователь печатает спам.Следующий код может объяснить это немного лучше.
AutocompleteTextView search = ...;
search.setOnKeyListener(new onKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP) {
if (mTimer != null)
mTimer.cancel();
mTimer = new Timer();
mTimer.schedule(new TimerTask() {
public void run() {
my_func();
}
}, 1000);
return true;
}
return false;
}
}
public void my_func() {
Looper.prepare();
// Do some function that changes the View
Looper.loop();
}
Есть идеи, как заставить keyListener ждать определенное количество секунд?
РЕДАКТИРОВАТЬ:
IСейчас я использую таймер для планирования функции.См. Отредактированный выше код.
ПЕРВЫЙ таймер работает.Однако, когда я пытаюсь повторно вызвать функцию во втором таймере, я получаю исключение, которое говорит, что только основной поток, который инициализировал представление, может изменить представление.Я не уверен, как работает Looper (я только что добавил Looper, потому что раньше жаловался, что мне нужно его использовать).Есть предложения?