有人可以告诉我,如何从线程中获取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());
毕竟我什么都不行。我做错了什么?任何解决方案和建议?提前谢谢
答案 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 等..... 如果直接尝试在该方法中设置文本视图的值,则会出现异常。