Индекс 1 вне диапазона [0..1) image - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь получить изображение из JSON и загрузить его в XML. и я уже получаю URL изображения и просто должен загрузить его. но всякий раз, когда я пытаюсь загрузить изображение, оно всегда показывает Index 1 out of range [0..1) сообщение об ошибке, но я не знаю, почему это происходит.

это мой код

val url = "https://www.thesportsdb.com/api/v1/json/1/lookupteam.php?id=133616"
    val request = Request.Builder().url(url).build()
    val client = OkHttpClient()
    client.newCall(request).enqueue(object : Callback, okhttp3.Callback {
        override fun onFailure(call: Call, e: IOException) {
            println("failed")
        }

        override fun onResponse(call: okhttp3.Call?, response: okhttp3.Response?) {
            val body = response?.body()?.string()
            println(body)
            val jsonObject = JSONObject(body)
            val jsonArray = jsonObject.getJSONArray("teams")
            for (i in 0..jsonArray.length()) {
                val jsonObject2 = jsonArray.getJSONObject(i)
                val lambang = jsonObject2.getString("strTeamBadge")
                Log.v("lambang", "" + lambang)
                Picasso.get().load(lambang).into(badge_away)
            }
        }
    })

и когда я изменяю для на while(i<jsonArray.length(), он загружает изображение снова и снова без остановки. пожалуйста, если вы знаете, как решить эту проблему, пожалуйста, помогите

ps: у моего jsonArray фактически есть только 1 индекс

1 Ответ

0 голосов
/ 02 ноября 2018

Заменить 0..jsonArray.length()
с 0..jsonArray.length()-1 или 0 until jsonArray.length()
индексы массива начинаются с нуля, поэтому последний элемент имеет индекс, равный jsonArray.length()-1.
При использовании 0 until jsonArray.length() последнее значение jsonArray.length() исключается.
Если массив имеет только 1 элемент, цикл for должен выполняться только один раз.

Редактировать : это очень полезная ссылка для этого случая Диапазоны Котлина

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...