TextView
Android アプリケーションの非同期タスクから更新したいと考えています。でこれを行う最も簡単な方法は何Handler
ですか?
次のようないくつかの同様の質問があります: Android update TextView with Handler ですが、例は複雑であり、回答されていないようです。
TextView
Android アプリケーションの非同期タスクから更新したいと考えています。でこれを行う最も簡単な方法は何Handler
ですか?
次のようないくつかの同様の質問があります: Android update TextView with Handler ですが、例は複雑であり、回答されていないようです。
UI を更新し、UI スレッドの外部からView
などを変更するには、いくつかの方法があります。TextView
AHandler
は 1 つの方法にすぎません。
Handler
これは、さまざまなタイプのリクエストに対して単一の応答を許可する例です。
クラス レベルで単純な を定義しますHandler
。
private final static int DO_UPDATE_TEXT = 0;
private final static int DO_THAT = 1;
private final Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
final int what = msg.what;
switch(what) {
case DO_UPDATE_TEXT: doUpdate(); break;
case DO_THAT: doThat(); break;
}
}
};
現在 UI スレッドにある関数の 1 つで UI を更新します。
private void doUpdate() {
myTextView.setText("I've been updated.");
}
非同期タスク内から にメッセージを送信しますHandler
。それにはいくつかの方法があります。これは最も簡単かもしれません:
myHandler.sendEmptyMessage(DO_UPDATE_TEXT);