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 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());
}

View File

@ -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();
}
}