I want make a spinner using retrofit 2
, here is my spinner class:
private void initSpinnerMeridian(){
loading = ProgressDialog.show(mContext, null, "Loading...", true, false);
mApiInterface.getMeridian().enqueue(new Callback<DataModel>() {
@Override
public void onResponse(Call<DataModel> call, Response<DataModel> response) {
if (response.isSuccessful()) {
loading.dismiss();
List<Meridian> dataMeridian = response.body().getMeridian();
List<String> listSpinner = new ArrayList<String>();
for (int i = 0; i < dataMeridian.size(); i++){
listSpinner.add(dataMeridian.get(i).getNama());
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext,
android.R.layout.simple_spinner_item, listSpinner);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spMeridian.setAdapter(adapter);
} else {
loading.dismiss();
Toast.makeText(mContext, "Failed get data from api", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<DataModel > call, Throwable t) {
t.printStackTrace();
loading.dismiss();
Toast.makeText(mContext, "Check your internet connection", Toast.LENGTH_SHORT).show();
}
});
}
Here is my ApiInterface
class:
public interface ApiInterface {
@GET("/api/data/meridian")
Call<DataModel> getMeridian();
@GET("/data/proyek")
Call<DataModel> getProyek();
@FormUrlEncoded
@POST("/transaksi")
Call<InputModel> postTransaksi(
@Field("save") String save,
@Field("id_meridian") String idMeridian,
@Field("id_proyek") String idProyek,
@Field("kegiatan") String kegiatan,
@Field("nominal") String nominal,
@Field("id_kategori") String idKategori,
@Field("tanggal") String tanggal,
@Field("keterangan") String keterangan,
@Field("status") Object status,
@Field("images") ImageView images
);
}
But, when I'm running this on an emulator, then nothing happens and only a toast with the text: Failed get data from api
does appear. What should I do?