ошибка java.lang.IndexOutOfBoundsException: индекс: 1, размер: 1 - PullRequest
0 голосов
/ 26 октября 2019

У меня следующая ошибка:

java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    at java.util.ArrayList.get(ArrayList.java:437)
    at com.fabric.apps.mobile.activity.CheckoutActivity$2.onItemSelected(CheckoutActivity.java:245)

Вот мое объявление списка:

private List<CostsItemKurirModel> costsItemKurirModels;

private void initradio(){
int id = preferences.getID();

ConfigRetrofit.provideApiService().getKurir(id,kurir).enqueue(new Callback<ResponseKurirModel>() {
    @Override
    public void onResponse(Call<ResponseKurirModel> call, Response<ResponseKurirModel> response) {
        costsItemKurirModels = response.body().getCosts();

       initDataSpinner();
    }

    @Override
    public void onFailure(Call<ResponseKurirModel> call, Throwable t) {

    }
});
}

Это та часть, где ошибка:

private void initDataSpinner() {
    kurirListAdapter = new KurirListAdapter(this,costsItemKurirModels);

    kurirListAdapter.notifyDataSetChanged();
    spkurir.setAdapter(kurirListAdapter);

    spkurir.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            CostsItemKurirModel cur = (CostsItemKurirModel) parent.getItemAtPosition(position);

            Log.d("TAG", "isi cur" +parent);

           servicePrice.setText(cur.getCost().get(position).getValue().toString();

        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

}

И это тот JSON, который я пытаюсь вызвать:

{
"code": "jne",
"name": "Jalur Nugraha Ekakurir (JNE)",
"costs": [
    {
        "service": "OKE",
        "description": "Ongkos Kirim Ekonomis",
        "cost": [
            {
                "value": 13000,
                "etd": "2-3",
                "note": ""
            }
        ]
    },
    {
        "service": "REG",
        "description": "Layanan Reguler",
        "cost": [
            {
                "value": 15000,
                "etd": "1-2",
                "note": ""
            }
        ]
    },
    {
        "service": "YES",
        "description": "Yakin Esok Sampai",
        "cost": [
            {
                "value": 20000,
                "etd": "1-1",
                "note": ""
            }
        ]
    }
]
}

Я хочу загрузить значение в процедуру initDataSpinner (), но когда я вызываю вторые данные, значение которого равно 20000, всегда указывалось, что индекс и размер одинаковы, поэтому не может загрузить данные. Я не знаю, что не так.

Это ссылка на мой полный код: https://pastebin.com/bEMbQGKA

...