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()
}```