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 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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue