从线程中获取字符串值

时间:2013-03-04 14:01:27

标签: android

有人可以告诉我,如何从线程中获取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:

textView.setText(xmlHandler.getInformation());
毕竟我什么都不行。我做错了什么?任何解决方案和建议?提前谢谢

1 个答案:

答案 0 :(得分: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()方法中的值..

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