9

TextViewAndroid アプリケーションの非同期タスクから更新したいと考えています。でこれを行う最も簡単な方法は何Handlerですか?

次のようないくつかの同様の質問があります: Android update TextView with Handler ですが、例は複雑であり、回答されていないようです。

4

2 に答える 2

22

UI を更新し、UI スレッドの外部からViewなどを変更するには、いくつかの方法があります。TextViewAHandlerは 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);
于 2013-03-28T15:25:16.677 に答える