我正在运行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();
}
}
答案 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可解决此问题。