0

スレッドから mainActivity への Stringvalue を取得するにはどうすればよいですか?

私はこのようなスレッドを持っています:

public class XMLHandler extends DefaultHandler {

XMLDataCollected data = new XMLDataCollected();

    ......
    ......

public String getInformation() {

    String information = "";

        if (data.getData().equals("residential")) {
            information = "Stadt";
        }           
        return information;
}   

}

mainActivity で、次のように値をテキストビューに設定しようとしました:

textView.setText(xmlHandler.getInformation());

結局動かない。私は何を間違っていますか?解決策とアドバイスはありますか?前もって感謝します

4

1 に答える 1

0

あなたがSeparateThreadクラスを持っているなら、あなたは1つのインターフェースを作成する必要があります

public interface FetchValueListener{

public void sendValue(String value_to_send);

}

そして、あなたの活動はこのインターフェースを実装するので、sendValue(value_to_send)メソッドがあなたのアクティビティに追加されます。

次のステップは、THreadクラスのオブジェクトを作成するときに、次のようにそのインターフェイスのオブジェクトをパラメーターに渡す必要があります。

    public class myThreadClass{
    FetchValueListener mllistener;

    myThreadClass(FetchValueListener listenerObj){
         mllistener=listenerObj;
    }

    }

これで、スレッドからアクティビティに値を送信したい場合は、単に呼び出すことができます

mllistener.sendValue(value_you_wan_to_send);

そして、アクティビティ内で、sendValue()メソッドの値を取得します。

そのメソッドでは、 setTextなどのUIに変更を加えることができるように、ハンドラーを使用してデータをrunnableに送信する必要があります。そのメソッドでテキストビューの値を直接設定しようとすると、例外が発生します。 。

于 2013-03-04T14:18:36.367 に答える