Quiz part completed 50%

This commit is contained in:
rishab 2020-03-25 21:51:21 +05:30
parent 5079b5e3ae
commit 11f732361d
2 changed files with 99 additions and 61 deletions

View File

@ -8,12 +8,13 @@ import android.database.sqlite.SQLiteOpenHelper;
import com.example.alzapp.QuizContract.* ; import com.example.alzapp.QuizContract.* ;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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 static final int DATABASE_VERSION = 1;
private SQLiteDatabase db; private SQLiteDatabase db;
@ -24,7 +25,6 @@ public class QuizDbHelper extends SQLiteOpenHelper {
@Override @Override
public void onCreate(SQLiteDatabase db) { public void onCreate(SQLiteDatabase db) {
this.db = db; this.db = db;
final String SQL_CREATE_QUESTIONS_TABLE = "CREATE TABLE " + final String SQL_CREATE_QUESTIONS_TABLE = "CREATE TABLE " +
@ -38,9 +38,7 @@ public class QuizDbHelper extends SQLiteOpenHelper {
")"; ")";
db.execSQL(SQL_CREATE_QUESTIONS_TABLE); db.execSQL(SQL_CREATE_QUESTIONS_TABLE);
fillQuestionsTable(); fillQuestionsTable();
} }
@Override @Override
@ -52,35 +50,26 @@ public class QuizDbHelper extends SQLiteOpenHelper {
private void fillQuestionsTable() { private void fillQuestionsTable() {
Question q1 = new Question("A is correct", "A", "B", "C", 1); Question q1 = new Question("A is correct", "A", "B", "C", 1);
addQuestion(q1); addQuestion(q1);
Question q2 = new Question("B is correct", "A", "B", "C", 2); Question q2 = new Question("B is correct", "A", "B", "C", 2);
addQuestion(q2); addQuestion(q2);
Question q3 = new Question("C is correct", "A", "B", "C", 3); Question q3 = new Question("C is correct", "A", "B", "C", 3);
addQuestion(q3); addQuestion(q3);
Question q4 = new Question("A is correct again", "A", "B", "C", 1); Question q4 = new Question("A is correct again", "A", "B", "C", 1);
addQuestion(q4); addQuestion(q4);
Question q5 = new Question("B is correct again", "A", "B", "C", 2); Question q5 = new Question("B is correct again", "A", "B", "C", 2);
addQuestion(q5); addQuestion(q5);
} }
private void addQuestion(Question question) { private void addQuestion(Question question) {
ContentValues cv = new ContentValues(); ContentValues cv = new ContentValues();
cv.put(QuestionsTable.COLUMN_QUESTION, question.getQuestion()); 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_OPTION1, question.getOption1());
cv.put(QuestionsTable.COLUMN_OPTION2, question.getOption2()); cv.put(QuestionsTable.COLUMN_OPTION2, question.getOption2());
cv.put(QuestionsTable.COLUMN_OPTION3, question.getOption3()); cv.put(QuestionsTable.COLUMN_OPTION3, question.getOption3());
cv.put(QuestionsTable.COLUMN_ANSWER_NR, question.getAnswerNr()); cv.put(QuestionsTable.COLUMN_ANSWER_NR, question.getAnswerNr());
db.insert(QuestionsTable.TABLE_NAME, null, cv); db.insert(QuestionsTable.TABLE_NAME, null, cv);
} }
public List<Question> getAllQuestions() { public List<Question> getAllQuestions() {
List<Question> questionList = new ArrayList<>(); List<Question> questionList = new ArrayList<>();
db = getReadableDatabase(); db = getReadableDatabase();
@ -94,6 +83,7 @@ public class QuizDbHelper extends SQLiteOpenHelper {
question.setOption2(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION2))); question.setOption2(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION2)));
question.setOption3(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION3))); question.setOption3(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION3)));
question.setAnswerNr(c.getInt(c.getColumnIndex(QuestionsTable.COLUMN_ANSWER_NR))); question.setAnswerNr(c.getInt(c.getColumnIndex(QuestionsTable.COLUMN_ANSWER_NR)));
questionList.add(question);
} while (c.moveToNext()); } while (c.moveToNext());
} }

View File

@ -1,19 +1,20 @@
package com.example.alzapp; package com.example.alzapp;
import android.content.res.ColorStateList; import android.content.res.ColorStateList;
import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.RadioButton; import android.widget.RadioButton;
import android.widget.RadioGroup; import android.widget.RadioGroup;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
public class QuizQuestionPage extends AppCompatActivity { public class QuizQuestionPage extends AppCompatActivity {
private TextView textViewQuestion; private TextView textViewQuestion;
private TextView textViewScore; private TextView textViewScore;
private TextView textViewQuestionCount; private TextView textViewQuestionCount;
@ -26,7 +27,6 @@ public class QuizQuestionPage extends AppCompatActivity {
private ColorStateList textColorDefaultRb; private ColorStateList textColorDefaultRb;
private List<Question> questionList; private List<Question> questionList;
private int questionCounter; private int questionCounter;
private int questionCountTotal; private int questionCountTotal;
@ -50,6 +50,7 @@ public class QuizQuestionPage extends AppCompatActivity {
rb3 = findViewById(R.id.radioButton32); rb3 = findViewById(R.id.radioButton32);
buttonConfirmNext = findViewById(R.id.quiz_confirm_next); buttonConfirmNext = findViewById(R.id.quiz_confirm_next);
textColorDefaultRb = rb1.getTextColors(); textColorDefaultRb = rb1.getTextColors();
QuizDbHelper dbHelper = new QuizDbHelper(this); QuizDbHelper dbHelper = new QuizDbHelper(this);
@ -59,6 +60,20 @@ public class QuizQuestionPage extends AppCompatActivity {
showNextQuestion(); 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() {
@ -79,20 +94,53 @@ public class QuizQuestionPage extends AppCompatActivity {
textViewQuestionCount.setText("Question: " + questionCounter + "/" + questionCountTotal); textViewQuestionCount.setText("Question: " + questionCounter + "/" + questionCountTotal);
answered = false; answered = false;
buttonConfirmNext.setText("Confirm"); buttonConfirmNext.setText("Confirm");
} else {
finishQuiz();
}
} }
else { private void checkAnswer() {
finishQuiz(); 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() { private void finishQuiz() {
finish(); finish();
} }
} }