0

有人可以告诉我,如何从线程获取一个 Stringvalue 到 mainActivity?

我有一个这样的线程:

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 类,那么你需要创建一个接口说

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() 方法中的值..

在该方法中,您需要使用处理程序将数据发布到可运行状态,以便您可以对 UI 进行更改,例如setText等.....如果您直接尝试在该方法中设置文本视图的值,您将收到异常.

于 2013-03-04T14:18:36.367 回答