【发布时间】:2017-11-29 13:08:00
【问题描述】:
我需要在适配器中创建一个 RetrofitCall,这样我就可以像这样在 onBindViewHolder 内运行一个循环:
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());
}
});
所以我可以这样称呼:
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);
}
}
问题是在代码运行之前没有完成改造调用,因此它给出了空指针异常并且应用程序崩溃。猜猜我能做什么?我尝试了几个没有运气的答案(Asynctask 和一个名为 Rxjava 的依赖项)。
请记住,我是初学者,所以尽量做到准确。
【问题讨论】:
标签: java android asynchronous android-asynctask retrofit2