퀴즈 앱 만들기 - 7(END)

Purang·2022년 5월 16일
0

Android Studio

목록 보기
7/28


여기서 결과를 보여줄 xml을 생성합니다.

또한 Activity도 생성해줍니다.

우선 xml먼저 살펴보겠습니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_vertical"
    android:padding="20dp"
    android:background="@drawable/backgroundic"
    tools:context=".ResultActivity">

    <TextView
        android:id="@+id/tv_result"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="25dp"
        android:gravity="center"
        android:text="RESULT"
        android:textColor="@color/white"
        android:textSize="25sp"
        android:textStyle="bold"></TextView>

    <!--이미지를 보여줄수없는 경우 텍스트로대체 = contentD~-->
    <ImageView
        android:id="@+id/trophy"
        android:layout_width="match_parent"
        android:layout_height="350dp"
        android:contentDescription="image"
        android:src="@drawable/trophy" />

    <TextView
        android:id="@+id/tv_congratulations"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:gravity="center"
        android:text="Congratulations!"
        android:textColor="@color/white"
        android:textSize="25sp"
        android:textStyle="bold"/>
    <TextView
        android:id="@+id/tv_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="username"
        android:layout_marginTop="10dp"
        android:gravity="center"
        android:textColor="@color/white"
        android:textSize="25sp"
        android:textStyle="bold"/>
    <TextView
        android:id="@+id/tv_score"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:gravity="center"
        android:textColor="@android:color/secondary_text_dark"
        android:textSize="20sp"
        tools:text="Your Score is 4 out pf 5"/>
    <Button
        android:id="@+id/btn_finish"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:background="@android:color/white"
        android:text="FINISH"
        android:textSize="25sp"
        android:textStyle="bold"/>
</LinearLayout>

LinearLayout이고 축하메세지, 사용자의 이름, 결과 값, 트로피사진 등을 설정하여

다음과 같은 화면을 가지고 있습니다.

다음으로 ResultActivity에서 username, 정답 개수, 총 문제 개수를 엑티비티간 데이터 전달을 위해 getStringExtra, getIntExtra를 사용하여 QuizQuestionActivity에서 intent를 통해 넘긴 데이터를 받습니다.
또한 id값을 통해 score의 텍스트를 할당합니다. 그 후 finish 버튼을 누르면 처음 MainActivity로 돌아가도록 하였습니다.

class ResultActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_result)

        val username = intent.getStringExtra(Constants.USER_NAME)
        tv_name.text = username

        val totalQuestions = intent.getIntExtra(Constants.TOTAL_QUESTIONS, 0)
        val correctAnswer = intent.getIntExtra(Constants.CORRECT_ANSWERS, 0)
        tv_score.text = "당신은 $totalQuestions 중 $correctAnswer 개의 정답을 맞히셨습니다!"

        btn_finish.setOnClickListener {
            startActivity(Intent(this, MainActivity::class.java))
        }
    }
}

이렇게 만든 퀴즈 앱은 현재 제가 사회복무 중인 기관에서 기관이용인분들의 교육에 실제로 사용되었으며 기관 내의 선생님들과 이용인분들에게 좋은 만족도를 얻을 수 있었습니다. 저 또한 보람을 느낄 수 있었습니다.

이것으로 간단한 퀴즈 앱 만들기를 마치도록 하겠습니다.
다음에는 다른 앱 만들기를 도전 해보도록 하겠습니다. 감사합니다.


패치사항

현재 사회복무 중인 기관 선생님께서 요청하신 대로 퀴즈 앱 패치를 진행하였습니다.

main fragment에서 기억을 상기시키기 위한 사진을 추가.
ImageView를 사용

문제 수 추가. 여러개의 문제 중 5개만 출력하도록 수정.

profile
몰입의 즐거움

0개의 댓글