当我运行我的应用程序,它的崩溃在这句话(抱歉糟糕的英语)我试了很多方法来解决这个问题,但是我不能enter image description here
lhcgjxsq1#
gridLayout.getChildAt按消息所述返回null。尝试使用gridLayout.getchildCount()-1更改您的条件
gridLayout.getChildAt
gridLayout.getchildCount()-1
u3r8eeie2#
您一直在循环,直到gridlayoutchildCount和数组索引在Kotlin中从0开始。如果你有一个包含10个元素的数组,要访问第一个元素,你需要像array[0]一样索引它,对于第二个元素,你使用array[1],以此类推,所以如果你试图访问array[10],这意味着你试图获取第11个元素,但这个元素并不存在,因为你的数组总共有10个元素。这个例子数组中的最后一个元素位于索引9处,因此可以通过调用array[9]来访问它。在循环到gridLayout.getChildCount()的情况下,当循环到达最后一个元素时,它将尝试访问数组中不存在的元素。因此,应该循环到gridLayout.getChildCount()- 1,因为这是最后一个元素的正确索引。
2条答案
按热度按时间lhcgjxsq1#
gridLayout.getChildAt
按消息所述返回null。尝试使用
gridLayout.getchildCount()-1
更改您的条件u3r8eeie2#
您一直在循环,直到gridlayoutchildCount和数组索引在Kotlin中从0开始。
如果你有一个包含10个元素的数组,要访问第一个元素,你需要像array[0]一样索引它,对于第二个元素,你使用array[1],以此类推,所以如果你试图访问array[10],这意味着你试图获取第11个元素,但这个元素并不存在,因为你的数组总共有10个元素。这个例子数组中的最后一个元素位于索引9处,因此可以通过调用array[9]来访问它。
在循环到gridLayout.getChildCount()的情况下,当循环到达最后一个元素时,它将尝试访问数组中不存在的元素。因此,应该循环到gridLayout.getChildCount()- 1,因为这是最后一个元素的正确索引。