我目前有一些操作与用户在AutocompleteTextView中输入内容的时间有关。但是,如果用户停止输入,我只想要注册该操作。从本质上讲,我不希望在用户进行垃圾邮件输入时发生操作。下面的代码可能会更好地解释它。Android:强制onKeyListener等待
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等待几秒钟?
编辑:
我现在使用计时器来安排函数。参考上面编辑的代码。
FIRST定时器的工作原理。但是,当我尝试重新调用第二个计时器的函数时,我得到一个异常,表示只有初始化View的主线程才能修改View。我不确定Looper是如何工作的(我只是添加了Looper,因为它在我需要使用之前就抱怨过了)。有什么建议么?
谢谢!我得到它与TimerTask的工作。 – Jin 2012-03-25 19:01:17
我遇到了有关线程的新问题,您是否知道我如何获得计划的计时器任务以使用同时修改视图的函数? – Jin 2012-03-25 19:17:35
见编辑答案。 – 2012-03-25 19:25:12