【发布时间】:2012-02-16 13:49:46
【问题描述】:
我的基本问题是如何使用 AsyncTask 更新 GUI。我在 GUI 线程引用的onPostExecute 中设置了一个String。使用日志记录,我可以看到在 onPostExecute 方法中设置了 String,但它永远不会在我的 onClickListener 下的 GUI 上设置以更新 GUI。任何帮助表示赞赏。
主程序:
公共类 Main 扩展 Activity {
/** 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); }}
【问题讨论】:
-
尚不清楚您的
temperatureListener何时添加到您的按钮视图中。单击按钮时是否出现“Button Clicked”日志消息? -
我使用 temperatureListener 作为更新 GUI 的按钮。是的,会出现“单击按钮”日志消息。 Deepak 能够找到我的问题,但感谢您的帮助!