У меня есть фрагмент кода, который запрашивает мой веб-сервер xml, анализирует возвращаемые данные и заполняет текстовые поля в моем графическом интерфейсе соответствующими данными.До того, как у меня было это в моей функции oncreate и код работал нормально.Однако я хотел показать пользователю диалог загрузки, поэтому я переместил веб-сервер и операции синтаксического анализа XML в асинхронную задачу.Проблема возникает сейчас, когда я иду, чтобы заполнить мои текстовые поля GUI с моими проанализированными данными, и я получаю ошибку.Кто-нибудь может увидеть, что я делаю неправильно
new BackgroundAsyncTask().execute(); /// called from the oncreate function
, и мой код фоновой задачи выглядит следующим образом
public class BackgroundAsyncTask extends
AsyncTask<Void, Integer, Void> {
int myProgress;
@Override
protected void onPostExecute(Void result) {
MyDialog.dismiss();
}
@Override
protected void onPreExecute() {
MyDialog = ProgressDialog.show(attraction_more_info.this, " " , " Loading. Please wait ... ", true);
}
@Override
protected Void doInBackground(Void... params) {
xml query and parse stuff on here ...
// Populate page now
TextView titlefield = (TextView) findViewById(R.id.att_title);
TextView add1field = (TextView) findViewById(R.id.att_address1);
TextView add2field = (TextView) findViewById(R.id.att_address2);
TextView townfield = (TextView) findViewById(R.id.att_town);
TextView postcodefield = (TextView) findViewById(R.id.att_postcode);
TextView phonefield = (TextView) findViewById(R.id.att_phone);
WebView webview = (WebView) findViewById(R.id.webview1);
MY ERRORS START HERE
titlefield.setText(attraction_name);
add1field.setText(attraction_address1);
add2field.setText(attraction_address2);
townfield.setText(attraction_town);
postcodefield.setText(attraction_postcode);
phonefield.setText(attraction_phone);
webview.loadData(attraction_description, "text/html", null);
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
}
}
Может кто-нибудь мне помочь?