2012-03-01 28 views
0

在我的Android应用程序中,我已经创建了后台线程来将数据从互联网加载到我的应用程序。在该后台线程中,我已经为以下文本字段设置了一些值。我可以在android中更改UI内容窗体背景线程吗?

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:只有创建视图层次结构的原始线程可以触及其视图。

我该如何解决这个问题?

回答

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); 
} 
相关问题