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 に答える