AsyncTask OnPostExecute不更新TextView

时间:2012-07-27 02:23:13

标签: android android-asynctask textview

我正在运行AsyncTask。我有TextView我模仿Toast最初产生的消息。 我希望在TextView成功时清除OnPostExecute,但不会这样做。任务完成Toast工作正常。如何将TextView中的OnPostExecute设置为空白?用户仍在TextView所在的显示屏幕上。

错误条件的代码如下:

@Override
protected void onPostExecute(Void result) 
 { FetchingImage=0;
  if(webLoadError>0)
   {
    TextView text = (TextView) findViewById(R.id.textView2);
    String temp=" ";
    text.setText(temp);
    Toast.makeText(getApplicationContext(), "Image not available from the internet.\nDefault or last image loaded.\nTry again later.",Toast.LENGTH_LONG).show();
    }  
  }

2 个答案:

答案 0 :(得分:5)

尝试类似:

((TextView) findViewById(R.id.textView2)).setText("");

编辑:

尝试在onCreate TextView text;之外的onCreate以及然后在text = (TextView) findViewById(R.id.textView2);内放置text.setText("");

然后只需将onPostExecute放入{{1}}方法。

看看是否有效。

答案 1 :(得分:0)

我知道这个帖子已经过时了,但我认为我找到了解决方案(至少它对我有用),也许它有助于其他人:

我有一个带有3个textviews的视图,默认值接收来自" doInBackground"的Web服务的值。 AsyncTask的方法以及稍后在" onPostExecute"上更改它们中的文本。方法。问题是三个文本视图中只有一个在第一次执行代码时显示了来自ws的新文本(它是一个简单的应用程序,实现了Zxing条形码阅读器从产品中读取条形码并从网络服务器获取价格,无论如何),下一次执行(在应用程序打开后)正在更新三个文本视图。

所以我注意到在第一次执行中更新其值的唯一textview有其参数" android:textIsSelectable" =真,其他两个是假的。 Bingo,在其他2个文本视图中将此参数更改为true可解决此问题。