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,64 +38,54 @@ public class QuizDbHelper extends SQLiteOpenHelper {
|
||||||
")";
|
")";
|
||||||
|
|
||||||
db.execSQL(SQL_CREATE_QUESTIONS_TABLE);
|
db.execSQL(SQL_CREATE_QUESTIONS_TABLE);
|
||||||
|
|
||||||
fillQuestionsTable();
|
fillQuestionsTable();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
||||||
db.execSQL("DROP TABLE IF EXISTS " + QuestionsTable.TABLE_NAME);
|
db.execSQL("DROP TABLE IF EXISTS " + QuestionsTable.TABLE_NAME);
|
||||||
onCreate(db);
|
onCreate(db);
|
||||||
}
|
}
|
||||||
|
|
||||||
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() {
|
||||||
|
List<Question> questionList = new ArrayList<>();
|
||||||
|
db = getReadableDatabase();
|
||||||
|
Cursor c = db.rawQuery("SELECT * FROM " + QuestionsTable.TABLE_NAME, null);
|
||||||
|
|
||||||
public List<Question> getAllQuestions(){
|
if (c.moveToFirst()) {
|
||||||
List<Question> questionList = new ArrayList<>();
|
do {
|
||||||
db = getReadableDatabase();
|
Question question = new Question();
|
||||||
Cursor c = db.rawQuery("SELECT * FROM " + QuestionsTable.TABLE_NAME, null);
|
question.setQuestion(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_QUESTION)));
|
||||||
|
question.setOption1(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION1)));
|
||||||
if(c.moveToFirst()){
|
question.setOption2(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION2)));
|
||||||
do{
|
question.setOption3(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION3)));
|
||||||
Question question = new Question();
|
question.setAnswerNr(c.getInt(c.getColumnIndex(QuestionsTable.COLUMN_ANSWER_NR)));
|
||||||
question.setQuestion(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_QUESTION)));
|
questionList.add(question);
|
||||||
question.setOption1(c.getString(c.getColumnIndex(QuestionsTable.COLUMN_OPTION1)));
|
} while (c.moveToNext());
|
||||||
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)));
|
|
||||||
} while (c.moveToNext());
|
|
||||||
}
|
|
||||||
|
|
||||||
c.close();
|
c.close();
|
||||||
return questionList;
|
return questionList;
|
||||||
|
|
|
@ -1,22 +1,23 @@
|
||||||
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;
|
||||||
private TextView textViewCountDown;
|
private TextView textViewCountDown;
|
||||||
private RadioGroup rbGroup;
|
private RadioGroup rbGroup;
|
||||||
private RadioButton rb1;
|
private RadioButton rb1;
|
||||||
|
@ -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,40 +60,87 @@ 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() {
|
||||||
rb1.setTextColor(textColorDefaultRb);
|
rb1.setTextColor(textColorDefaultRb);
|
||||||
rb2.setTextColor(textColorDefaultRb);
|
rb2.setTextColor(textColorDefaultRb);
|
||||||
rb3.setTextColor(textColorDefaultRb);
|
rb3.setTextColor(textColorDefaultRb);
|
||||||
rbGroup.clearCheck();
|
rbGroup.clearCheck();
|
||||||
|
|
||||||
if ( questionCounter < questionCountTotal){
|
if (questionCounter < questionCountTotal) {
|
||||||
currentQuestion = questionList.get(questionCounter);
|
currentQuestion = questionList.get(questionCounter);
|
||||||
|
|
||||||
textViewQuestion.setText(currentQuestion.getQuestion());
|
textViewQuestion.setText(currentQuestion.getQuestion());
|
||||||
rb1.setText(currentQuestion.getOption1());
|
rb1.setText(currentQuestion.getOption1());
|
||||||
rb2.setText(currentQuestion.getOption2());
|
rb2.setText(currentQuestion.getOption2());
|
||||||
rb3.setText(currentQuestion.getOption3());
|
rb3.setText(currentQuestion.getOption3());
|
||||||
|
|
||||||
questionCounter++;
|
questionCounter++;
|
||||||
textViewQuestionCount.setText("Question: "+ questionCounter + "/" + questionCountTotal);
|
textViewQuestionCount.setText("Question: " + questionCounter + "/" + questionCountTotal);
|
||||||
answered = false;
|
answered = false;
|
||||||
buttonConfirmNext.setText("Confirm");
|
buttonConfirmNext.setText("Confirm");
|
||||||
}
|
} else {
|
||||||
|
finishQuiz();
|
||||||
else {
|
}
|
||||||
finishQuiz();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void finishQuiz(){
|
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();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue