상세 컨텐츠

본문 제목

[안드로이드 코틀린] 간단한 퀴즈앱 만드는 방법 part2 - 퀴즈 만들기 및 보여주기

안드로이드

by aries574 2022. 11. 22. 15:14

본문


안녕하세요. 이번 시간에는 퀴즈 앱 만들기 두 번째 시간 - 퀴즈 만들기보여주기를 만들어보겠습니다.

이전 포스팅은 아래 링크를 들어가시면 됩니다.

2022.11.21 - [안드로이드] - [안드로이드 코틀린]간단한 퀴즈 앱 만드는 방법 part1 - 메인화면 구성과 설정

 

[안드로이드 코틀린]간단한 퀴즈 앱 만드는 방법 part1 - 메인화면 구성과 설정

안녕하세요. 이번 시간에는 퀴즈 앱 만들기 첫 번째 시간 - 메인화면 & 설정을 해보겠습니다. 목차 1. 실행 화면 2. 바인딩 설정 3. 문자 리소스 string.xml 4. 답변 drawable option_background.xml 5. 메인 화면

aries574.tistory.com


목차

1. 실행 화면
2. 퀴즈 모델 클래스 Question.kt
3. 퀴즈 데이터 클래스 QuestionData.kt
4. 메인 코드 구현 MainActivity.kt


1. 실행 화면

 


2. 퀴즈 모델 클래스 Question.kt

 - 설명 - 

1. 퀴즈 데이터 담는 클래스 

2. question

   퀴즈 문제

 3. option_one

   답변 1

 4. option_two

   답변 2

 5. option_three

   답변 3

 6. option_four

   답변

4

 7. correct_answer

   정답 번호

data class Question(
    var id: Int,
    var question: String,
    var option_one: String,
    var option_two: String,
    var option_three: String,
    var option_four: String,
    var correct_answer: Int
)

 

반응형


3. 퀴즈 데이터 클래스 QuestionData.kt

 - 설명 - 

 1. 샘플 데이터 클래스

 2. getQuestion()

   샘플 데이터 가져오는 함수

 3. queList

   퀴즈 문제 담을 리스트

 4. q1 ~ q3

   퀴즈 샘플 데이터

object QuestionData {

    fun getQuestion(): ArrayList<Question>{

        val queList: ArrayList<Question> = arrayListOf()

        val q1 = Question(
            1,
            "1 + 1? ",
            "1",
            "2",
            "3",
            "4",
            2
        )

        val q2 = Question(
            1,
            "2 + 2?",
            "2",
            "3",
            "4",
            "5",
            3
        )

        val q3 = Question(
            1,
            "3 + 3?",
            "2",
            "4",
            "6",
            "8",
            3
        )

        queList.add(q1)
        queList.add(q2)
        queList.add(q3)

        return queList
    }
}

 


4. 메인 코드 구현 MainActivity.kt

- 설명 -

 1. currentPosition

   질문 위치

 2. selectedOption

   선택한 답변

 3. score

   총 맞춘 개수

 4. getQuestionData()

   퀴즈 문제 보여주는 함수

 5. progressBar.progress

   상태바 현재 위치 설정

 6. progressBar.max

   상태바 최댓값 설정

 7. getString

   string.xml의 설정값 적용

 8. setSubmitBtn

   체크 버튼 텍스트 설정

class MainActivity : AppCompatActivity(){

    private lateinit var binding: ActivityMainBinding

    private lateinit var questionList: ArrayList<Question>

    private var currentPosition: Int = 1 //질문 위치
    private var selectedOption: Int = 0 // 선택 옵션
    private var score: Int = 0 //점수

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        //질문 리스트 가져오기
        questionList = QuestionData.getQuestion()

        //화면 셋팅
        getQuestionData()
    }


    private fun getQuestionData(){

        //질문 변수에 담기
        val question = questionList[currentPosition-1]

        //상태바 위치
        binding.progressBar.progress = currentPosition

        //상태바 최대값
        binding.progressBar.max = questionList.size

        //현재 위치 표시
        binding.progressText.text =  getString(R.string.count_label, currentPosition, questionList.size)

        //질문 표시
        binding.questionText.text = question.question

        //답변 표시
        binding.option1.text = question.option_one
        binding.option2.text = question.option_two
        binding.option3.text = question.option_three
        binding.option4 .text = question.option_four

        setSubmitBtn("제출")

    }

    //제출버튼 텍스트 설정
    private fun setSubmitBtn(name: String){

        binding.submitBtn.text = getString(R.string.submit, name)

    }
}

2022.11.07 - [안드로이드] - [안드로이드 코틀린] 파이어베이스 사용자 CRUD 만드는 방법 part1 - 프로젝트 생성

 

[안드로이드 코틀린] 파이어베이스 사용자 CRUD 만드는 방법 part1 - 프로젝트 생성

이번 시간에는 파이어베이스(Firebase) CRUD 만드는 방법 - 첫 번째 시간 안드로이드 스튜디오 프로젝트 생성, 파이어베이스 프로젝트 생성, 실시간 데이터베이스 생성 하는 방법에 대하여 알아보겠

aries574.tistory.com

2022.10.18 - [안드로이드] - [안드로이드 코틀린] 채팅앱 만드는 방법 part1 - 로그인 액티비티

 

[안드로이드 코틀린] 채팅앱 만드는 방법 part1 - 로그인 액티비티

이번 시간에는 채팅앱 만들기 첫 번째 시간 로그인 액티비티 만드는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 뷰 바인딩 3. 백그라운드 drawable 4. 로그인 화면 LogInActivity 5. 홈 화면 변경 1. 실

aries574.tistory.com

2022.10.06 - [안드로이드] - [안드로이드 코틀린] tic-tac-toe 보드게임 만드는 방법 part1 - 뷰 바인딩 및 화면구성

 

[안드로이드 코틀린] tic-tac-toe 보드게임 만드는 방법 part1 - 뷰 바인딩 및 화면구성

이번 시간에는 Tic Tac Toe 보드 게임의 화면 구성을 해보겠습니다. Tic Tac Toe 게임은 오목처럼 번갈아 가며 클릭을 해서 누가 먼저 한 줄을 만들면 이기는 단순한 게임입니다. 목차 1. 실행 화면 2.

aries574.tistory.com

 

반응형

관련글 더보기

댓글 영역