2012-03-01 1 views
0

내 app.In 배경 스레드에서 나는 다음과 같은 텍스트 필드에 일부 값을 설정했습니다 인터넷에서 데이터를로드하는 배경 스레드를 만들었습니다.UI 콘텐츠 양식을 변경할 수 있습니까? 백그라운드 스레드가 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 : 뷰 계층을 만든 원래 스레드 만보기에 접근 할 수 있습니다.

어떻게 해결할 수 있습니까 ??

답변

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); 
} 
관련 문제