【发布时间】:2018-09-18 08:51:29
【问题描述】:
我正在使用 Android Studio 我需要从 http://mindicador.cl/api 的 API 中检索所有数据,这里我需要获取“uf”、“dolar”、“euro”和“utm”四个对象。实际上我已经可以检索它,当我想将它添加到数组时出现问题,因为将来我想处理这个数组以便在 RecyclerView 上显示它们。
public class MainActivity extends AppCompatActivity {
private List<IEconomicoObject> iEconomicoObjects;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iEconomicoObjects = new ArrayList<>();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(MiIndicadorAPI.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
MiIndicadorAPI api = retrofit.create(MiIndicadorAPI.class);
final Call<IEconomicoAPI> iEconomicoAPICall = api.getAPI();
iEconomicoAPICall.enqueue(new Callback<IEconomicoAPI>() {
@Override
public void onResponse(Call<IEconomicoAPI> call, Response<IEconomicoAPI> response) {
iEconomicoObjects.add(response.body().getUf());
iEconomicoObjects.add(response.body().getUtm());
iEconomicoObjects.add(response.body().getEuro());
iEconomicoObjects.add(response.body().getDolar());
}
@Override
public void onFailure(Call<IEconomicoAPI> call, Throwable t) {
Log.e("onFailure", "" + t.getMessage());
}
});
// here is the problem, the list is empty and should be show the data added it previously
if (!iEconomicoObjects.isEmpty()) {
for (IEconomicoObject o: iEconomicoObjects) {
Log.e("info", "nombre: " + o.getNombre());
}
} else {
Log.e("info", "the list is empty");
}
}
}
【问题讨论】:
标签: android json android-studio retrofit retrofit2