我创建了一组芯片,并从单击芯片的数组中选择元素:
myChips.setOnCheckedChangeListener { group, checkedId ->
if (checkedId != -1) {
chipFromArray = foodArray[checkedId - 1]
} else {
chipFromArray = foodArray[0]
}当我停留在片段中时,效果很好,但是当我导航到另一个片段,然后返回并选择一个芯片时,我会得到这样的效果:
ArrayIndexOutOfBoundsException
我做错了什么,我怎么解决这个问题?
更新
收集第二个芯片的日志:
检查id -> 2
导航后检查id,返回并再次选择第二个芯片-> 9。
坠机:
E/AndroidRuntime:致命异常:主要进程: com.example.newsapp,PID: 9026 java.lang.ArrayIndexOutOfBoundsException: length=7;index=8
数组init:val foodArray= resources.getStringArray(R.array.food_array)数组大小类似于芯片组大小。静电。
发布于 2020-05-19 12:22:32
正如Kasım zdemir在评论中所建议的,我可以这样做:
val chip = group.findViewById<Chip>(checkedId)
val chipText = chip.texthttps://stackoverflow.com/questions/61889789
复制相似问题