【发布时间】:2012-04-09 09:48:58
【问题描述】:
我目前有一些与用户在 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 等待一定的秒数吗?
编辑:
我现在正在使用 Timer 来安排功能。参考上面编辑的代码。
FIRST 计时器有效。但是,当我尝试重新调用第二个计时器的函数时,我得到一个异常,指出只有初始化视图的主线程才能修改视图。我不确定 Looper 是如何工作的(我只是添加了 Looper,因为它之前抱怨过我需要使用它)。有什么建议吗?
【问题讨论】:
标签: android multithreading keylistener