[embedyt] https://www.youtube.com/watch?v=rEaCu8itHtU[/embedyt]
QuizDbHelper.javaQuestion.javaQuizContract.javacolors.xmlactivity_starting_screen.xmlactivity_quiz.xmlStartingScreenActivity.java
package com.codinginflow.myawesomequiz; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import com.codinginflow.myawesomequiz.QuizContract.*; public class QuizDbHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "MyAwesomeQuiz.db"; private static final int DATABASE_VERSION = 1; private SQLiteDatabase db; public QuizDbHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { this.db = db; final String SQL_CREATE_QUESTIONS_TABLE = "CREATE TABLE " + QuestionsTable.TABLE_NAME + " ( " + QuestionsTable._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + QuestionsTable.COLUMN_QUESTION + " TEXT, " + QuestionsTable.COLUMN_OPTION1 + " TEXT, " + QuestionsTable.COLUMN_OPTION2 + " TEXT, " + QuestionsTable.COLUMN_OPTION3 + " TEXT, " + QuestionsTable.COLUMN_ANSWER_NR + " INTEGER" + ")"; db.execSQL(SQL_CREATE_QUESTIONS_TABLE); fillQuestionsTable(); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + QuestionsTable.TABLE_NAME); onCreate(db); } private void fillQuestionsTable() { Question q1 = new Question("A is correct", "A", "B", "C", 1); addQuestion(q1); Question q2 = new Question("B is correct", "A", "B", "C", 2); addQuestion(q2); Question q3 = new Question("C is correct", "A", "B", "C", 3); addQuestion(q3); Question q4 = new Question("A is correct again", "A", "B", "C", 1); addQuestion(q4); Question q5 = new Question("B is correct again", "A", "B", "C", 2); addQuestion(q5); } private void addQuestion(Question question) { ContentValues cv = new ContentValues(); cv.put(QuestionsTable.COLUMN_QUESTION, question.getQuestion()); cv.put(QuestionsTable.COLUMN_OPTION1, question.getOption1()); cv.put(QuestionsTable.COLUMN_OPTION2, question.getOption2()); cv.put(QuestionsTable.COLUMN_OPTION3, question.getOption3()); cv.put(QuestionsTable.COLUMN_ANSWER_NR, question.getAnswerNr()); db.insert(QuestionsTable.TABLE_NAME, null, cv); } }
package com.codinginflow.myawesomequiz; public class Question { private String question; private String option1; private String option2; private String option3; private int answerNr; public Question() { } public Question(String question, String option1, String option2, String option3, int answerNr) { this.question = question; this.option1 = option1; this.option2 = option2; this.option3 = option3; this.answerNr = answerNr; } public String getQuestion() { return question; } public void setQuestion(String question) { this.question = question; } public String getOption1() { return option1; } public void setOption1(String option1) { this.option1 = option1; } public String getOption2() { return option2; } public void setOption2(String option2) { this.option2 = option2; } public String getOption3() { return option3; } public void setOption3(String option3) { this.option3 = option3; } public int getAnswerNr() { return answerNr; } public void setAnswerNr(int answerNr) { this.answerNr = answerNr; } }
package com.codinginflow.myawesomequiz; import android.provider.BaseColumns; public final class QuizContract { private QuizContract() { } public static class QuestionsTable implements BaseColumns { public static final String TABLE_NAME = "quiz_questions"; public static final String COLUMN_QUESTION = "question"; public static final String COLUMN_OPTION1 = "option1"; public static final String COLUMN_OPTION2 = "option2"; public static final String COLUMN_OPTION3 = "option3"; public static final String COLUMN_ANSWER_NR = "answer_nr"; } }
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#795548</color> <color name="colorPrimaryDark">#5D4037</color> <color name="colorAccent">#FFEB3B</color> <color name="colorBackground">#BCAAA4</color> </resources>
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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:background="@color/colorBackground" android:padding="16dp" tools:context="com.codinginflow.myawesomequiz.StartingScreenActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="30dp" android:text="My Awesome Quiz" android:textColor="@android:color/black" android:textSize="35sp" /> <TextView android:id="@+id/text_view_highscore" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/button_start_quiz" android:layout_centerHorizontal="true" android:layout_marginBottom="32dp" android:text="Highscore: 0" android:textSize="20sp" /> <Button android:id="@+id/button_start_quiz" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="Start Quiz" /> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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:background="@color/colorBackground" android:padding="16dp" tools:context="com.codinginflow.myawesomequiz.QuizActivity"> <TextView android:id="@+id/text_view_score" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Score: 0" android:textColor="@android:color/black" /> <TextView android:id="@+id/text_view_question_count" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/text_view_score" android:text="Question: 1/x" android:textColor="@android:color/black" /> <TextView android:id="@+id/text_view_countdown" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:text="00:30" android:textColor="@android:color/black" android:textSize="40sp" /> <TextView android:id="@+id/text_view_question" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@id/radio_group" android:layout_marginBottom="16dp" android:text="Here will be the question text\nHere will be the question text\nHere will be the question text" android:textAlignment="center" android:textColor="@android:color/black" android:textSize="20sp" /> <RadioGroup android:id="@+id/radio_group" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true"> <RadioButton android:id="@+id/radio_button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Option 1" /> <RadioButton android:id="@+id/radio_button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Option 2" /> <RadioButton android:id="@+id/radio_button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Option 3" /> </RadioGroup> <Button android:id="@+id/button_confirm_next" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/radio_group" android:layout_marginTop="16dp" android:text="Confirm" /> </RelativeLayout>
package com.codinginflow.myawesomequiz; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class StartingScreenActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_starting_screen); Button buttonStartQuiz = findViewById(R.id.button_start_quiz); buttonStartQuiz.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startQuiz(); } }); } private void startQuiz() { Intent intent = new Intent(StartingScreenActivity.this, QuizActivity.class); startActivity(intent); } }