Ho 6 diversi tipi di risultati List
dopo aver completato AsyncTask
. E i risultati devono essere restituiti a Activity
. Ad esempio: List<A>
, List<B>
, List<C>
, List<D>
, List<E>
e infine List<F>
.Come restituire Elenco anonimo o ArrayList su AsyncTask in Android
Questo è il mio AsyncTask
:
public class myAsync extends AsyncTask<String, String, List> {
private List resultList;
@Override
protected List doInBackground(String... params) {
//params[0] is url
//params[1] is type
callAPI api = new callAPI(params[0], params[1]);
// According to type api decides type of List and generates
return api.getJSON(); // returns a List which already parse JSON
}
@Override
protected void onPostExecute(List result) {
// Result is here now, may be 6 different List type.
this.resultList = result
}
// returns result
public List getResultList() { return this.resultList; }
}
chiamerò AsyncTask come questo:
myAsync task = new myAsync();
task.execute(params);
List myList = task.getResultList(); // type is uncertain
Log.d("Tag", Integer.toString(myList.size());
Sai, devo sottolineare il tipo di ritorno (Risultato) tra < tag>. Se scelgo un tipo specifico per List
, non funziona con altri tipi.
Infatti, ho già provato a restituire List<Object>
e solo i tipi List
. Ma non ha funzionato.
Non voglio utilizzare 6 diversi Async
. È possibile risolvere questo con un solo AsyncTask
? Immagino di aver bisogno di una lista anonima o qualcosa di simile a non essere sicuro. Qualcuno può spiegarlo?
È possibile ignorare <>, non sarà un errore, semplicemente avverte. – kosa
Vuoi dire che dovrei usare questa definizione: 'AsyncTask'. Se lo è, quali saranno i tipi di ritorno? Ho già restituito tutti i tipi come Elenco normale, ottenuto un errore NullException. –
Post stacktrace qui, ho il sospetto che il NullPointer che si sta ricevendo potrebbe provenire da qualche altra parte. – kosa