.ArrayIndexOutOfBoundsException,当导航回到片段时

时间:2020-05-19 11:20:17

标签: android kotlin

我创建了一组芯片,然后从单击芯片的数组中选择元素:

  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) [阵列大小,如芯片组大小。静态。]

1 个答案:

答案 0 :(得分:0)

正如KasımÖzdemir在评论中建议的那样,我可以这样做:

val chip = group.findViewById<Chip>(checkedId)
val chipText = chip.text