2013-03-04 56 views
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:

textView.setText(xmlHandler.getInformation()); 

我不毕竟工作。我做错了什么?任何解决方案和建议?在此先感谢

+1

请提供更多信息。你得到的错误是什么? – Leaudro 2013-03-04 14:03:57

回答

0

如果你有一个SeparateThread类,那么你需要创建一个接口说

public interface FetchValueListener{ 

public void sendValue(String value_to_send); 

} 

而且你acctivity将实现此接口,因此sendValue(value_to_send)方法将被添加到您的活动。

在创建Thread类的对象,那么你需要通过该接口的对象在paramater如下下一步将是:当你想送一些价值的

public class myThreadClass{ 
    FetchValueListener mllistener; 

    myThreadClass(FetchValueListener listenerObj){ 
     mllistener=listenerObj; 
    } 

    } 

现在从线程活动,你可以只是简单地调用

mllistener.sendValue(value_you_wan_to_send);

而且你actiivty里面,你会得到在sendValue()方法的价值..

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