私は現在、ユーザーが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を強制することができます任意のアイデア?
EDIT:
私は今の機能をスケジュールするためにタイマーを使用しています。上記の編集コードを参照してください。
FIRSTタイマーが機能します。しかし、2番目のタイマーの機能を再現しようとすると、ビューを初期化したメインスレッドだけがビューを変更できるという例外が表示されます。私はルーパーがどのように動作するのかわかりません(私はそれを使用する前に不平を言いましたので、私はルーパーを追加しました)。助言がありますか?
ありがとうございます!私はそれをTimerTaskで処理しました。 – Jin
私はスレッドに関する新しい問題を抱えていますが、スケジュールされたタイマータスクを同時に表示を変更する関数で動作させる方法を知っていますか? – Jin
編集された回答を参照してください。 –