2012-03-01 32 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); 
} 
相關問題