我创建了一组芯片,然后从单击芯片的数组中选择元素:
myChips.setOnCheckedChangeListener { group, checkedId ->
if (checkedId != -1) {
chipFromArray = foodArray[checkedId - 1]
} else {
chipFromArray = foodArray[0]
}
当我停留在片段中时,它的效果很好,但是当我导航至其他片段,然后向后导航并选择一个芯片时,我得到了该片段:
ArrayIndexOutOfBoundsException
我在做什么错,我该如何解决?
更新
拾取第二个芯片的日志:
已检查ID-> 2
导航后检查ID, 返回并再次选择第二个筹码-> 9
崩溃:
E / Android运行时:致命异常:主要 流程:com.example.newsapp,PID:9026 java.lang.ArrayIndexOutOfBoundsException:length = 7; index = 8
阵列初始化:val foodArray= resources.getStringArray(R.array.food_array)
[阵列大小,如芯片组大小。静态。]
答案 0 :(得分:0)
正如KasımÖzdemir在评论中建议的那样,我可以这样做:
val chip = group.findViewById<Chip>(checkedId)
val chipText = chip.text