Estava sendo respondido em:
https://cursos.alura.com.br/forum/topico-acessar-findviewbyid-no-medoto-async-29548
Mas o moderador resolveu desistir
Estou levantando novamente o questionamento, pois a aula 5 do curso de android II, não ensina completamente como popular uma lista de forma asincrona, então estou implorando por uma resposta e só estão me enrolando;
public class TorneiosTask extends AsyncTask<Void, Void, ArrayList> {
private Context context;
private ProgressDialog dialog;
public TorneisoActivity activity;
public TorneiosTask(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(context, "Aguarde Progresso", "Listando Torneios", true, true);
}
@Override
protected ArrayList<Torneios> doInBackground(Void... params) {
ArrayList<Torneios> toneios = null;
try {
toneios = new ParseTorneios(context).getTorneios();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//if (toneios != null){
// ListView listView = (ListView) findViewById(R.id.ListView);
// TorneiosAdapter adapter = new TorneiosAdapter(context, toneios);
//TorneiosAdapter<Torneios> adapter = new TorneiosAdapter<Torneios>(this, R.layout.list_item, toneios);
// listView.setAdapter(adapter);
// }
return toneios;
}
@Override
protected void onPostExecute(ArrayList toneios) {
//View view = inflater.inflate(R.layout.list_item, null);
ListView listView = (ListView) activity.findViewById(R.id.ListView);
TorneiosAdapter adapter = new TorneiosAdapter(context, (ArrayList<Torneios>) toneios);
//TorneiosAdapter<Torneios> adapter = new TorneiosAdapter<Torneios>(this, R.layout.list_item, toneios);
listView.setAdapter(adapter);
dialog.dismiss();
}
}
Mesmo exemplo do curso, mas ao invés de trazer uma string, estou trazendo uma ArrayList
Ao final não está crachiando a aplicação, só não está populando.
Sei que o xml e o parse estão corretos, pois já testei localmente