1. 정답 맞춘 문제를 건너뛰기
(1) Question data class(java/패키지명/Question) 수정
data class Question (@StringRes val textResID: Int, val answer: Boolean, var answered: Boolean = false)
(2) checkAnswer 수정
private fun checkAnswer(userAnswer: Boolean){
val correctAnswer = questionBank[currentIndex].answer
val messageResId = if (userAnswer == correctAnswer){
R.string.correct_toast
}else{
R.string.incorrect_toast
}
if (userAnswer == correctAnswer){
trueButton.isEnabled = false
falseButton.isEnabled = false
questionBank[currentIndex].answered = true
}
Toast.makeText(this, messageResId, Toast.LENGTH_SHORT).show()
}
(3) isAnswered() 추가
private fun isAnswered(index: Int){
val isQuestionAnswered = questionBank[index].answered
trueButton.isEnabled = !isQuestionAnswered
falseButton.isEnabled = !isQuestionAnswered
}
(4) onCreate()의 nextButton click listener 수정
nextButton.setOnClickListener {
currentIndex = (currentIndex + 1) % questionBank.size
isAnswered(currentIndex) //요거 추가
updateQuestion()
}
2. 점수 보여주기
(1) 변수 추가
private var currentScore = 0.0
private var answeredCheck = mutableMapOf<Int, Boolean>()
(2) checkAnswer() 수정
private fun checkAnswer(userAnswer: Boolean){
val correctAnswer = questionBank[currentIndex].answer
val messageResId = if (userAnswer == correctAnswer){
R.string.correct_toast
}else{
R.string.incorrect_toast
}
if (userAnswer == correctAnswer){
trueButton.isEnabled = false
falseButton.isEnabled = false
questionBank[currentIndex].answered = true
currentScore++ // 요거 추가
}
answeredCheck.remove(currentIndex) // 요거 추가
answeredCheck.put(currentIndex, true) // 요거 추가
if (answeredCheck.size == questionBank.size){ // 요거 추가
Toast.makeText(this, "${(currentScore / questionBank.size * 100).toInt()}점!", Toast.LENGTH_SHORT).show()
}else{
Toast.makeText(this, messageResId, Toast.LENGTH_SHORT).show()}
}
'DEVELOPMENT' 카테고리의 다른 글
[Kotlin - Android Development] 개발하면서 있었던 크고 작은 문제들 (0) | 2021.09.16 |
---|---|
카페24 SSL 보안인증서 https로 리다이렉트 (0) | 2021.07.23 |
[실무에 바로 적용하는 안드로이드 프로그래밍 - Kotlin] Challenge 2: Previous Button & Image Button (0) | 2021.07.16 |
[실무에 바로 적용하는 안드로이드 프로그래밍 - Kotlin] Challenge 1: Toast Customizing (0) | 2021.07.13 |
[Android Studio] Chapter 14 연습문제 (0) | 2021.07.09 |