2013-03-04 60 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 ..... 如果您直接嘗試在該方法中設置文本視圖的值你會得到一個例外。