327일차 - IT 영단어 앱 : 퀴즈

2021. 11. 21. 22:59·아카이브/일기
반응형
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import com.kwon.it_word.R
import com.kwon.it_word.adapter.QuizAdapter
import com.kwon.it_word.data.QuizData
import com.kwon.it_word.view.QuizDataVM
import kotlinx.android.synthetic.main.fragment_quiz.*

class QuizFragment : Fragment() {
    private var quizDataList: MutableList<QuizData> = mutableListOf()

    private val quizAdapter: QuizAdapter by lazy {
        QuizAdapter(requireContext())
    }

    companion object {
        fun newInstance(): QuizFragment {
            return QuizFragment()
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        return inflater.inflate(R.layout.fragment_quiz, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        QuizDataVM.getInstance(requireContext())?.let {
            it.quizReadData.observe(viewLifecycleOwner, { data ->
                for(k in data) {
                    if(!k.view_status) {
                        with(quiz_recycler) {
                            layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
//                          addItemDecoration(DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL))  --> 구분선
                            adapter = quizAdapter
                        }
                        quizDataList.add(QuizData(k.id, k.answer, k.question_1, k.question_2, k.question_3, k.question_4, view_status = true, correct_status = false))
                    }
                    quizAdapter.submitList(data)
                }
            })
        }

        QuizDataVM.getInstance(requireContext())?.apply {
//            onQuizCreate("Quiz", "커즈", "퀴즈", "퀸즈", "컴즈")
            onQuizRead()
            quiz_send_message_btn.setOnClickListener {
                onQuizCreate("랜덤 문제", "허허", "히히", "호호", "하하")
                onQuizRead()
            }
        }
    }

    override fun onStop() {
        QuizDataVM.getInstance(requireContext())?.let {
            for(n in quizDataList) {
                it.onQuizUpdate(n)
            }
        }
        super.onStop()
    }
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/frameLayout2"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    tools:context=".fragment.QuizFragment">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/quiz_recycler"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toTopOf="@+id/quiz_send_message_layout"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <LinearLayout
        android:id="@+id/quiz_send_message_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/send_message_border"
        android:gravity="center"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/relativeLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingStart="20dp"
            android:paddingTop="10dp"
            android:paddingEnd="20dp"
            android:paddingBottom="10dp">

            <EditText
                android:id="@+id/quiz_send_message_input"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/send_message_input"
                android:ems="10"
                android:hint="정답을 입력하세요"
                android:inputType="none"
                android:paddingStart="20dp"
                android:paddingTop="10dp"
                android:paddingEnd="50dp"
                android:paddingBottom="10dp"
                android:textColor="#ba000000"
                android:textColorHighlight="#999999"
                android:textColorHint="#66000000"
                android:textCursorDrawable="@drawable/input_cursor"
                android:textSize="14sp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                tools:ignore="TouchTargetSizeCheck" />

            <LinearLayout
                android:id="@+id/quiz_send_message_btn"
                android:layout_width="50dp"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="horizontal"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent">

                <View
                    android:layout_width="25dp"
                    android:layout_height="30dp"
                    android:background="@drawable/send_message" />
            </LinearLayout>

        </androidx.constraintlayout.widget.ConstraintLayout>

    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

 

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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="wrap_content"
    android:layout_marginTop="10dp"
    android:background="#999999">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/quiz_main_layout"
        android:layout_width="match_parent"
        android:layout_height="180dp"
        app:layout_constraintBottom_toTopOf="@id/quiz_answer_status_layout"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TextView
            android:id="@+id/quiz_question_text"
            style="@style/jua"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="25dp"
            android:text="문제"
            android:textSize="16sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/constraintLayout"
            android:layout_width="0dp"
            android:layout_height="90dp"
            android:layout_marginStart="20dp"
            android:layout_marginEnd="20dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/quiz_question_text">

            <Button
                android:id="@+id/quiz_one_btn"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginEnd="10dp"
                android:fontFamily="@font/jua"
                android:text="문제 1"
                android:textSize="16sp"
                app:layout_constraintBottom_toTopOf="@id/quiz_three_btn"
                app:layout_constraintEnd_toStartOf="@+id/quiz_two_btn"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                tools:ignore="TouchTargetSizeCheck" />

            <Button
                android:id="@+id/quiz_two_btn"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="10dp"
                android:fontFamily="@font/jua"
                android:text="문제 2"
                android:textSize="16sp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@id/quiz_one_btn"
                app:layout_constraintTop_toTopOf="@id/quiz_one_btn"
                tools:ignore="TouchTargetSizeCheck" />

            <Button
                android:id="@+id/quiz_three_btn"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginEnd="10dp"
                android:fontFamily="@font/jua"
                android:text="문제 3"
                android:textSize="16sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toStartOf="@+id/quiz_four_btn"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/quiz_one_btn" />

            <Button
                android:id="@+id/quiz_four_btn"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="10dp"
                android:fontFamily="@font/jua"
                android:text="문제 4"
                android:textSize="16sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@id/quiz_three_btn"
                app:layout_constraintTop_toBottomOf="@id/quiz_one_btn" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/quiz_answer_status_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ffffff"
        android:visibility="gone"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/quiz_main_layout">

        <View
            android:id="@+id/temp_view_1"
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:background="#999999"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@id/quiz_answer_status_text"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/quiz_answer_status_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:layout_marginEnd="20dp"
            android:text="정답!"
            android:textColor="#333333"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@id/temp_view_2"
            app:layout_constraintStart_toEndOf="@id/temp_view_1"
            app:layout_constraintTop_toTopOf="parent" />

        <View
            android:id="@+id/temp_view_2"
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:background="#999999"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@id/quiz_answer_status_text"
            app:layout_constraintTop_toTopOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
반응형
저작자표시 비영리 변경금지 (새창열림)

'아카이브 > 일기' 카테고리의 다른 글

331일차 - Custom BottomNavgation (1)  (0) 2021.12.01
330일차 - 구글 클라우드 플랫폼에서 인보이스가 날라왔다  (0) 2021.11.30
329일차 - IT 영단어 기획서 V1.0  (0) 2021.11.29
328일차 - 휴식  (0) 2021.11.22
326 일차 - IT 영단어 앱 : 홈 화면  (0) 2021.11.20
325일차 - IT 영단어 앱 : Bottom Navigation  (0) 2021.11.19
324일차 - 찰스 안드로이드 링크 모음  (0) 2021.11.18
323일차 - IT 영단어 앱 : Local DB & Shared DB  (0) 2021.11.17
'아카이브/일기' 카테고리의 다른 글
  • 329일차 - IT 영단어 기획서 V1.0
  • 328일차 - 휴식
  • 326 일차 - IT 영단어 앱 : 홈 화면
  • 325일차 - IT 영단어 앱 : Bottom Navigation
권퓨터
권퓨터
만드는 걸 좋아하는 개발자의 기록. 코드든 글이든, 일단 만들어 봅니다.
  • 권퓨터
    권퓨터: Kwonputer
    권퓨터
  • 티스토리 홈 관리자
  • 전체
    오늘
    어제
    • 분류 전체보기 (559)
      • 개발 (56)
        • 프로젝트 (5)
        • 모바일 (44)
        • 프론트엔드 (0)
        • 백엔드 (2)
        • 인프라 (0)
        • AI · 머신러닝 (4)
      • IT · 테크 (10)
        • 기술 트렌드 (3)
        • 도구 · 생산성 (1)
        • 제품 리뷰 · 추천 (0)
        • 마케팅 · 수익화 (6)
      • 자기계발 (7)
        • 공부법 · 언어 (0)
        • 취업 · 커리어 (7)
      • 아카이브 (486)
        • 일기 (480)
        • 취미 (6)
  • 블로그 메뉴

    • 홈
  • 링크

    • 블로그 이전
  • 공지사항

    • 서브 블로그 => https://kwonputer.com/
  • 인기 글

  • 태그

    Clean Architecture
    상태관리
    Single Table Design
    FACEBOOK광고
    ai 게임 개발
    다국어 블로그
    https://www.kwonputer.shop/
    AI블로그
    AWS CDK
    내러티브 게임
    flutter 개발자
    next.js
    서버리스 아키텍처
    TypeScript
    파이썬
    aws lambda
    OpenAI GPT
    클린 아키텍처
    kotlin
    블로그수익화
    riverpod
    flutter
    dynamodb
    python 기초
    python
    injectable
    콘텐츠자동화
    flutter 면접 질문
    Prompt Engineering
    https://github.com/kwongeneral/kortfolio.git
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
권퓨터
327일차 - IT 영단어 앱 : 퀴즈
상단으로

티스토리툴바