Ich brauche einen RetrofitCall in einem Adapter zu machen, damit ich eine Schleife innerhalb eines onBindViewHolder wie folgt ausführen kann:Warte auf asynchrone Call Response Antwort auf einem Adapter?
public void checkguardadas(int id_usuario) {
RetrofitService retrofitService = RetrofitService.getInstance();
PabloAPI api = retrofitService.getApiProxyServer();
Call<ArrayList<Oferta>> call = api.getGuardadas(1);
call.enqueue(new Callback<ArrayList<Oferta>>() {
@Override
public void onResponse(Call<ArrayList<Oferta>> call, Response<ArrayList<Oferta>> response) {
Log.d("traza", "por aqui");
Log.d("traza", response.body().toString());
guardadas = response.body();
}
@Override
public void onFailure(Call<ArrayList<Oferta>> call, Throwable t) {
Log.d("traza", "por alla");
Log.d("traza", t.toString());
}
});
So kann ich das nennen:
public void onBindViewHolder(final OfertasAdapter.MyViewHolder viewHolder,
int i) {
Iterator it = guardadas.iterator();
while (it.hasNext()) {
if (ofertaList.get(i).getId() == guardadas.get(i).getId()) {
viewHolder.guardar.setChecked(true);
}
}
Das Problem ist, dass die Nachrüstung Der Aufruf wird nicht ausgeführt, bevor der Code ausgeführt wird. Daher gibt es eine Nullzeiger-Ausnahme und die App stürzt ab. Irgendeine Vermutung, was ich tun kann? Ich habe mit mehreren Antworten ohne Glück versucht (Asynctask und eine Abhängigkeit namens Rxjava).
Bitte denken Sie daran, ich bin ein Anfänger, also versuchen Sie so präzise wie möglich zu sein.
Wie kann ich den gesamten Adapter innerhalb der onResponse machen? Weil der Adapter eigentlich eine ganze Klasse sein soll? –
Es gibt einen Unterschied zwischen der Definition einer Klasse und der Instantiierung einer "neuen" Klasse –