Quiz part completed 50%
This commit is contained in:
parent
5079b5e3ae
commit
11f732361d
|
@ -8,12 +8,13 @@ import android.database.sqlite.SQLiteOpenHelper;
|
|||
|
||||
import com.example.alzapp.QuizContract.* ;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class QuizDbHelper extends SQLiteOpenHelper {
|
||||
|
||||
private static final String DATABASE_NAME = "Quiz.db";
|
||||
public class QuizDbHelper extends SQLiteOpenHelper {
|
||||
private static final String DATABASE_NAME = "MyAwesomeQuiz.db";
|
||||
private static final int DATABASE_VERSION = 1;
|
||||
|
||||
private SQLiteDatabase db;
|
||||
|
@ -24,7 +25,6 @@ public class QuizDbHelper extends SQLiteOpenHelper {
|
|||
|
||||
@Override
|
||||
public void onCreate(SQLiteDatabase db) {
|
||||
|
||||
this.db = db;
|
||||
|
||||
final String SQL_CREATE_QUESTIONS_TABLE = "CREATE TABLE " +
|
||||
|
@ -38,9 +38,7 @@ public class QuizDbHelper extends SQLiteOpenHelper {
|
|||
")";
|
||||
|
||||
db.execSQL(SQL_CREATE_QUESTIONS_TABLE);
|
||||
|
||||
fillQuestionsTable();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -49,51 +47,43 @@ public class QuizDbHelper extends SQLiteOpenHelper {
|
|||
onCreate(db);
|
||||
}
|
||||
|
||||
private void fillQuestionsTable(){
|
||||
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){
|
||||
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_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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public List<Question> getAllQuestions(){
|
||||
public List<Question> getAllQuestions() {
|
||||
List<Question> questionList = new ArrayList<>();
|
||||
db = getReadableDatabase();
|
||||
Cursor c = db.rawQuery("SELECT * FROM " + QuestionsTable.TABLE_NAME, null);
|
||||
|
||||
if(c.moveToFirst()){
|
||||
do{
|
||||
if (c.moveToFirst()) {
|
||||
do {
|
||||
Question question = new Question();
|
||||
question.setQuestion(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_QUESTION)));
|
||||
question.setOption1(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION1)));
|
||||
question.setOption2(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION2)));
|
||||
question.setOption3(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION3)));
|
||||
question.setAnswerNr(c.getInt(c.getColumnIndex(QuestionsTable.COLUMN_ANSWER_NR)));
|
||||
questionList.add(question);
|
||||
} while (c.moveToNext());
|
||||
}
|
||||
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
package com.example.alzapp;
|
||||
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.RadioGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import android.widget.Toast;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class QuizQuestionPage extends AppCompatActivity {
|
||||
|
||||
private TextView textViewQuestion;
|
||||
private TextView textViewScore;
|
||||
private TextView textViewQuestionCount ;
|
||||
private TextView textViewQuestionCount;
|
||||
private TextView textViewCountDown;
|
||||
private RadioGroup rbGroup;
|
||||
private RadioButton rb1;
|
||||
|
@ -26,7 +27,6 @@ public class QuizQuestionPage extends AppCompatActivity {
|
|||
|
||||
private ColorStateList textColorDefaultRb;
|
||||
|
||||
|
||||
private List<Question> questionList;
|
||||
private int questionCounter;
|
||||
private int questionCountTotal;
|
||||
|
@ -50,6 +50,7 @@ public class QuizQuestionPage extends AppCompatActivity {
|
|||
rb3 = findViewById(R.id.radioButton32);
|
||||
buttonConfirmNext = findViewById(R.id.quiz_confirm_next);
|
||||
|
||||
|
||||
textColorDefaultRb = rb1.getTextColors();
|
||||
|
||||
QuizDbHelper dbHelper = new QuizDbHelper(this);
|
||||
|
@ -59,15 +60,29 @@ public class QuizQuestionPage extends AppCompatActivity {
|
|||
|
||||
showNextQuestion();
|
||||
|
||||
buttonConfirmNext.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (!answered) {
|
||||
if (rb1.isChecked() || rb2.isChecked() || rb3.isChecked()) {
|
||||
checkAnswer();
|
||||
} else {
|
||||
Toast.makeText(QuizQuestionPage.this, "Please select an answer", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
} else {
|
||||
showNextQuestion();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showNextQuestion(){
|
||||
private void showNextQuestion() {
|
||||
rb1.setTextColor(textColorDefaultRb);
|
||||
rb2.setTextColor(textColorDefaultRb);
|
||||
rb3.setTextColor(textColorDefaultRb);
|
||||
rbGroup.clearCheck();
|
||||
|
||||
if ( questionCounter < questionCountTotal){
|
||||
if (questionCounter < questionCountTotal) {
|
||||
currentQuestion = questionList.get(questionCounter);
|
||||
|
||||
textViewQuestion.setText(currentQuestion.getQuestion());
|
||||
|
@ -76,23 +91,56 @@ public class QuizQuestionPage extends AppCompatActivity {
|
|||
rb3.setText(currentQuestion.getOption3());
|
||||
|
||||
questionCounter++;
|
||||
textViewQuestionCount.setText("Question: "+ questionCounter + "/" + questionCountTotal);
|
||||
textViewQuestionCount.setText("Question: " + questionCounter + "/" + questionCountTotal);
|
||||
answered = false;
|
||||
buttonConfirmNext.setText("Confirm");
|
||||
}
|
||||
|
||||
else {
|
||||
} else {
|
||||
finishQuiz();
|
||||
}
|
||||
}
|
||||
|
||||
private void finishQuiz(){
|
||||
finish();
|
||||
private void checkAnswer() {
|
||||
answered = true;
|
||||
|
||||
RadioButton rbSelected = findViewById(rbGroup.getCheckedRadioButtonId());
|
||||
int answerNr = rbGroup.indexOfChild(rbSelected) + 1;
|
||||
|
||||
if (answerNr == currentQuestion.getAnswerNr()) {
|
||||
score++;
|
||||
textViewScore.setText("Score: " + score);
|
||||
}
|
||||
|
||||
showSolution();
|
||||
}
|
||||
|
||||
private void showSolution() {
|
||||
rb1.setTextColor(Color.RED);
|
||||
rb2.setTextColor(Color.RED);
|
||||
rb3.setTextColor(Color.RED);
|
||||
|
||||
switch (currentQuestion.getAnswerNr()) {
|
||||
case 1:
|
||||
rb1.setTextColor(Color.GREEN);
|
||||
textViewQuestion.setText("Answer 1 is correct");
|
||||
break;
|
||||
case 2:
|
||||
rb2.setTextColor(Color.GREEN);
|
||||
textViewQuestion.setText("Answer 2 is correct");
|
||||
break;
|
||||
case 3:
|
||||
rb3.setTextColor(Color.GREEN);
|
||||
textViewQuestion.setText("Answer 3 is correct");
|
||||
break;
|
||||
}
|
||||
|
||||
if (questionCounter < questionCountTotal) {
|
||||
buttonConfirmNext.setText("Next");
|
||||
} else {
|
||||
buttonConfirmNext.setText("Finish");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void finishQuiz() {
|
||||
finish();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue