У меня есть метод, который выполняется с помощью asyncTask с progressdialog. После того, как этот метод выполнен, он меняет некоторые вещи на экране - спиннер и текстовое представление. Внутри моего метода я обновляю их новыми данными. Я знаю, что метод работает отлично и работает как надо, потому что когда я нажимаю стрелку на счетчике, новые данные находятся внутри него. Внутри метода вызываются setText () и notifyDataSetChanged () - кажется, они не обновляют экран. Добавление notifyDataSetChanged () в onPostExecute () моей асинхронной задачи, похоже, тоже ничего не делает.
Есть идеи, что не так?
Это мой код
MyMethod ()
aa=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
for(Object tmpObject:objects){
aa.add(tmpObject.getName());
}
spin=(Spinner)findViewById(R.id.spinner);
spin.setOnItemSelectedListener(this);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(aa);
aa.notifyDataSetChanged();
txt=(TextView)findViewById(R.id.txt);
txt.setText("Woohoo!");
Мой asyncTask
class loginTask extends AsyncTask<Void, Void, Void> {
protected void onPreExecute() {
pd = ProgressDialog.show(login.this, "Logging you in...", "Please wait", true, false);
}
@Override
protected Void doInBackground(Void... unused) {
myMethod();
return null;
}
protected void onPostExecute(Void unused) {
pd.dismiss();
}
}
Почему экран не обновляется после завершения диалога? Он просто обновляется, если я не использую asyncTask. Добавление notifyDataSetChanged () к postexecute также ничего не делает.