索引 1 超出范围 [0..1) 图像
Index 1 out of range [0..1) image
我正在尝试从 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)
}
}
})
当我将 for 更改为 while(i<jsonArray.length()
时,它会不停地一遍又一遍地加载图像。
如果你知道如何解决这个问题,请帮忙
ps: 我的json数组实际上只有1个索引
替换0..jsonArray.length()
0..jsonArray.length()-1
或 0 until jsonArray.length()
数组索引从零开始,因此最后一个元素的索引等于 jsonArray.length()-1
。
当您使用 0 until jsonArray.length()
时,最后一个值 jsonArray.length()
被排除在外。
如果数组只有 1 个元素,那么 for 循环应该只执行一次。
编辑:这对这种情况非常有用linkKotlin Ranges
我正在尝试从 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)
}
}
})
当我将 for 更改为 while(i<jsonArray.length()
时,它会不停地一遍又一遍地加载图像。
如果你知道如何解决这个问题,请帮忙
ps: 我的json数组实际上只有1个索引
替换0..jsonArray.length()
0..jsonArray.length()-1
或 0 until jsonArray.length()
数组索引从零开始,因此最后一个元素的索引等于 jsonArray.length()-1
。
当您使用 0 until jsonArray.length()
时,最后一个值 jsonArray.length()
被排除在外。
如果数组只有 1 个元素,那么 for 循环应该只执行一次。
编辑:这对这种情况非常有用linkKotlin Ranges