これは以前の投稿にリンクされています: 私のレイアウトは次のようになります:
入力テキスト (EditText)
ボタン
出力テキスト (TextView)
タスク: ユーザーが入力を入力し、ボタンをクリックすると、出力テキストが表示されます。ボタンをクリックしてから(および出力テキストが表示されてから)約10秒後に入力と出力が消えるようにする必要があります。
現在、TextView に「TextWatcher」を追加できません。最初に、TextWatcherを持つことができるinputTextでHandlerを使用しようとしました。しかし、どういうわけか、ハンドラーはバックグラウンドで常に実行され続けており、それを「キャンセル」することはできません。
そこで、タイマーの使用に切り替えました。ボタンの onCick() メソッドでメソッドを使用しました。
onClick(){
...
eraseText();
....
}
public void eraseText(){
TimerTask task = new TimerTask() {
public void run() {
inputText.setText("");
outputText.setText("");
}
};
Timer timer = new Timer();
timer.schedule(task, 1000,10000);
}
そして 10 秒後に timer.cancel() を呼び出したいと思います (しかし、どこかわかりません!!) 問題は、UI スレッドのみがビューを変更できるというエラーが表示されることです。どうすればこれを行うことができますか?
ありがとう