异步任务无法更新GUI

异步任务无法更新GUI

问题描述:

我的基本问题是如何使用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

onCreate(),你应该使用手柄的AsyncTask的已经创建的对象,而不是创建新的对象。

使用

jsonHttpClass.execute(url_to_Http); 

,而不是

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

就是这样。我应该抓住那个。 谢谢! – user1213942 2012-02-16 14:24:18