0

在我的 android 应用程序中,我创建了后台线程以将数据从互联网加载到我的应用程序中。在该后台线程中,我为文本字段设置了一些值,如下所示。

protected Void doInBackground(Void... params) {

if(!isDataFromInternetAvailable){
  re=(TextView)findViewById(android.R.id.empty);
  re.setText("no data ");
}
else{
re=(TextView)findViewById(android.R.id.empty);
  re.setText("You have data ");
}

return null;

}

但它会给出以下异常。

android.view.ViewRoot$CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触摸其视图。

我怎样才能解决这个问题??

4

1 回答 1

1

更改您的 AsyncTask 以返回一个字符串。在onPostExecute中,使用字符串结果更新文本视图。

protected String doInBackground(Void... params) {
    return isDataFromInternetAvailable
        ? "You have data "
        : "no data ";
}

protected void onPostExecute(String result) {
    re = (TextView) findViewById(android.R.id.empty);
    re.setText(result);
}
于 2012-03-01T05:13:53.480 回答