安卓工作室质疑之前的按钮崩溃


private val questionBank = listOf(
       Question(R.string.question_australia, true),
       Question(R.string.question_oceans, true),
       Question(R.string.question_mideast, false),
       Question(R.string.question_africa, false),
       Question(R.string.question_americas, true),
       Question(R.string.question_asia, true))
   private var currentIndex = 0
   override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)
       //setContentView(R.layout.activity_main)
       binding = ActivityMainBinding.inflate(layoutInflater)
       setContentView(binding.root)

       binding.trueButton.setOnClickListener { checkAnswer(true) }
       binding.falseButton.setOnClickListener { checkAnswer(false)}
       binding.prevButton.setOnClickListener {
           currentIndex = (currentIndex - 1) % questionBank.size
           updateQuestion()
       }
       binding.nextButton.setOnClickListener {
           currentIndex = (currentIndex + 1) % questionBank.size
           updateQuestion()
       }
       updateQuestion()
   }

当我运行android工作室时,只有当我选择了第一个下一个按钮时,上一个按钮才能正常工作。如果我选择上一个按钮,它就会崩溃。我很难弄清楚模块计算背后的逻辑,我应该添加或更改什么,当我第一次按下上一个按钮时,它将转到列表的最后一个问题。

答案是我们应该使用.mod((而不是%。

            currentIndex = (currentIndex + 1).mod(questionBank.size)
            updateQuestion()
        }
        binding.prevButton.setOnClickListener {
            currentIndex = (currentIndex - 1).mod(questionBank.size)
            updateQuestion()
        }```

最新更新