2012-02-16 77 views
1

我的基本問題是如何使用AsyncTask更新GUI。我在GUI線程引用的onPostExecute中設置String。使用日誌記錄,我可以看到StringonPostExecute方法中被設置,但它永遠不會在我的GUI下在我的onClickListener下被設置爲更新GUI。任何幫助表示讚賞。異步任務無法更新GUI

主要課程:

公共類主要擴展活動{

/** Called when the activity is first created. */ 
Arduino.ToAndroid.Temperature.GetJSON jsonHttpClass = new Arduino.ToAndroid.Temperature.GetJSON(); 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    new GetJSON().execute(url_to_Http); 
} 
View.OnClickListener temperatureListener = new View.OnClickListener() { 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     // buttonTemperature = json.getTemp(); 
     tempView.setText(jsonHttpClass.value); 
     Log.i("ROSS LOG", "Button Clicked"); 
    } 
}; } 

異步任務:

類的getJSON擴展的AsyncTask {

public String value; 

@Override 
protected String doInBackground(String... url) { 
    String result = this.getHttpJson(url[0]); 
    return result; 
} 

@Override 
protected void onPostExecute(String result) { 
    value = new String(result); 
    Log.i("ROSS LOG", value); 
} 

}

+0

目前尚不清楚,在你的'被添加到您的按鈕什麼角度temperatureListener'。點擊按鈕時是否顯示「Button Clicked」日誌消息? – 2012-02-16 13:54:49

+0

我使用temperatureListener作爲一個按鈕來更新GUI。是的,出現「按鈕點擊」日誌消息。 Deepak能夠找到我的問題,但感謝您的幫助! – user1213942 2012-02-16 14:25:31

回答

1

onCreate(),你應該使用手柄的AsyncTask的已經創建的對象,而不是創建新的對象。

使用

jsonHttpClass.execute(url_to_Http); 

,而不是

new GetJSON().execute(url_to_Http); 
+0

就是這樣。我應該抓住那個。 謝謝! – user1213942 2012-02-16 14:24:18