From fa0851a63dbec10aa685a4776a238f188f1a10b9 Mon Sep 17 00:00:00 2001 From: AadiYadav <68039511+Cyber-cp@users.noreply.github.com> Date: Thu, 6 May 2021 11:20:48 -0700 Subject: [PATCH] Added set answer methods --- .../aadyad/checkboxquestion/QuestionList.java | 1 + .../Views/MultipleAnswerQuestion.java | 19 +++++++++++++++++++ .../Views/MultipleChoiceQuestion.java | 4 ++++ .../Views/YesOrNoQuestion.java | 4 ++++ .../MainActivity.java | 7 ++++++- 5 files changed, 34 insertions(+), 1 deletion(-) diff --git a/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/QuestionList.java b/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/QuestionList.java index d1890db..10d6b08 100644 --- a/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/QuestionList.java +++ b/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/QuestionList.java @@ -59,6 +59,7 @@ public void createQuestionViews() { case Question.MULTIPLE_ANSWER_QUESTION: MultipleAnswerQuestion multipleAnswerQuestion = new MultipleAnswerQuestion(context); multipleAnswerQuestion.init(q.question, String.valueOf(i), settings.isNumEnabled(), settings.getSpacing(), this.orientation, settings.getCheckBoxLocation(), settings.getQuestionTextSize(), settings.getCheckBoxTextSize(), q.options); + multipleAnswerQuestion.setCorrectAnswer(q.multipleCorrectAnswer); linearLayout.addView(multipleAnswerQuestion); break; default: diff --git a/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/Views/MultipleAnswerQuestion.java b/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/Views/MultipleAnswerQuestion.java index 3570f90..0b0464b 100644 --- a/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/Views/MultipleAnswerQuestion.java +++ b/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/Views/MultipleAnswerQuestion.java @@ -22,6 +22,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; public class MultipleAnswerQuestion extends LinearLayout { @@ -40,6 +41,7 @@ public class MultipleAnswerQuestion extends LinearLayout { LinearLayout layout; LinearLayout mainLayout; private int spacing; + private ArrayList correctAnswer; public MultipleAnswerQuestion(Context context) { this(context, null); @@ -527,4 +529,21 @@ public TextView getQuestionNumberTextView(){ public String[] getOptions(){ return allOptions; } + + public void setCorrectAnswer(ArrayList correctAnswer){ + Collections.sort(correctAnswer); + this.correctAnswer = correctAnswer; + } + + public ArrayList getCorrectAnswer(){ + return correctAnswer; + } + + public boolean isAnswerCorrect() throws Exception{ + if (getCorrectAnswer() == null){ + throw new Exception("There is no correct answer for this question."); + } + Collections.sort(selectedAnswers); + return getCorrectAnswer().equals(selectedAnswers); + } } diff --git a/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/Views/MultipleChoiceQuestion.java b/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/Views/MultipleChoiceQuestion.java index d0aad70..8799506 100644 --- a/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/Views/MultipleChoiceQuestion.java +++ b/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/Views/MultipleChoiceQuestion.java @@ -544,4 +544,8 @@ public boolean isAnswerCorrect() throws Exception{ public String[] getOptions(){ return allOptions; } + + public void setCorrectAnswer(int correctAnswer){ + this.correctAnswer = correctAnswer; + } } diff --git a/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/Views/YesOrNoQuestion.java b/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/Views/YesOrNoQuestion.java index 0ba331d..acb4ba7 100644 --- a/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/Views/YesOrNoQuestion.java +++ b/CheckboxQuestion/CheckboxQuestion/src/main/java/com/aadyad/checkboxquestion/Views/YesOrNoQuestion.java @@ -239,4 +239,8 @@ public boolean isAnswerCorrect() throws Exception{ } return getCorrectAnswer() == getSelectedAnswer(); } + + public void setCorrectAnswer(int correctAnswer){ + this.correctAnswer = correctAnswer; + } } \ No newline at end of file diff --git a/CheckboxQuestion/app/src/main/java/com/aadyad/checkboxquestions_library/MainActivity.java b/CheckboxQuestion/app/src/main/java/com/aadyad/checkboxquestions_library/MainActivity.java index 78dd99a..a5e06f7 100644 --- a/CheckboxQuestion/app/src/main/java/com/aadyad/checkboxquestions_library/MainActivity.java +++ b/CheckboxQuestion/app/src/main/java/com/aadyad/checkboxquestions_library/MainActivity.java @@ -12,6 +12,7 @@ import com.aadyad.checkboxquestion.Question; import com.aadyad.checkboxquestion.QuestionList; import com.aadyad.checkboxquestion.QuestionListSettings; +import com.aadyad.checkboxquestion.Views.MultipleAnswerQuestion; import com.aadyad.checkboxquestion.Views.MultipleChoiceQuestion; import org.json.JSONArray; @@ -123,7 +124,11 @@ public void onAnswerChanged(int selectedAnswerIndex, String selectedAnswerText) @Override public void onAnswerChanged(ArrayList listOfSelectedAnswerIndexes) { - Toast.makeText(MainActivity.this, "Selected: " + listOfSelectedAnswerIndexes, Toast.LENGTH_SHORT).show(); + try { + Toast.makeText(MainActivity.this, "" + ((MultipleAnswerQuestion) questionList.getQuestion(finalI1)).isAnswerCorrect(), Toast.LENGTH_SHORT).show(); + } catch (Exception e) { + e.printStackTrace(); + } } }); }