1

处理打字超时的最佳方法是什么?

我尝试了这样的代码(受此处代码的启发):

public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
//...
    Message msg = Message.obtain(messageHandler, MESSAGE_TEXT_CHANGED, arg0.toString());
    messageHandler.sendMessageDelayed(msg, 1000 );
//...
}

但在日志中,我可以看到地理编码器在每次按键时都会被调用,无论我输入多快。我想拥有与 Javascript 的 setTimeout(...) 函数相同的行为。

任何帮助表示赞赏

4

1 回答 1

1

您可以在按下新键时取消之前发送给处理程序的消息:

Message msg = Message.obtain(messageHandler, MESSAGE_TEXT_CHANGED, arg0.toString());
messageHandler.removeMessages(MESSAGE_TEXT_CHANGED);
messageHandler.sendMessageDelayed(msg, 1000 );
于 2012-09-19T11:30:12.053 回答