Java 异步任务可以';更新图形用户界面

Java 异步任务可以';更新图形用户界面,java,android,Java,Android,我的基本问题是如何使用AsyncTask更新GUI。我正在GUI线程引用的onPostExecute中设置一个字符串。使用日志记录,我可以在onPostExecute方法中看到String的设置,但它从来不会在我的GUI上的onClickListener下设置以更新GUI。感谢您的帮助 主程序: 公共类主要扩展活动{ /** Called when the activity is first created. */ Arduino.ToAndroid.Temperature.GetJSON js

我的基本问题是如何使用AsyncTask更新GUI。我正在GUI线程引用的
onPostExecute
中设置一个
字符串。使用日志记录,我可以在
onPostExecute
方法中看到
String
的设置,但它从来不会在我的GUI上的
onClickListener
下设置以更新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扩展异步任务{

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);
} 
}

onCreate()
中,您应该使用
AsyncTask
的已创建对象的句柄,而不是创建新对象

使用

而不是

new GetJSON().execute(url_to_Http); 
onCreate()
中,您应该使用
AsyncTask
的已创建对象的句柄,而不是创建新对象

使用

而不是

new GetJSON().execute(url_to_Http); 

不清楚您的
temperatureListener
是在什么时候添加到按钮视图的。是否单击了“按钮”单击按钮时出现的日志消息?我使用temperatureListener作为更新GUI的按钮。是的,会出现“button clicked”(按钮已单击)日志消息。Deepak能够找到我的问题,但感谢您的帮助!不清楚您的
temperatureListener
是在什么时候添加到按钮视图的。“按钮已单击”吗单击按钮时出现的日志消息?我使用temperatureListener作为更新GUI的按钮。是的,出现了“单击按钮”日志消息。Deepak能够找到我的问题,但感谢您的帮助!就是这样。我应该抓住它。谢谢!就是这样。我应该抓住它。谢谢!