索引 1 超出范围 [0..1) 图像

Posted

技术标签:

【中文标题】索引 1 超出范围 [0..1) 图像【英文标题】:Index 1 out of range [0..1) image 【发布时间】:2019-04-06 20:28:53 【问题描述】:

我正在尝试从 json 获取图像并将其加载到 xml 中。我已经得到了图片的网址,只需要加载它。但每当我尝试加载图像时,它总是显示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:我的 jsonArray 实际上只有 1 个索引

【问题讨论】:

【参考方案1】:

替换0..jsonArray.length() 0..jsonArray.length()-10 until jsonArray.length() 数组索引从零开始,因此最后一个元素的索引等于jsonArray.length()-1。 当您使用 0 until jsonArray.length() 时,最后一个值 jsonArray.length() 被排除在外。 如果数组只有 1 个元素,那么 for 循环应该只执行一次。 编辑:对于这个案例,这是一个非常有用的链接Kotlin Ranges

【讨论】:

非常感谢它有效。我认为..until 是一样的

以上是关于索引 1 超出范围 [0..1) 图像的主要内容,如果未能解决你的问题,请参考以下文章

[__NSArrayM objectAtIndex:]: 索引 2 超出范围 [0 .. 1]'

Python循环:列表索引超出范围

当我使用单元格时索引超出范围(Swift)

列表索引超出范围错误:Python

致命错误:索引超出范围:Swift

k元组排序中的python列表索引超出范围