private void showFeedback(String msg) { AlertDialog.Builder builder = new AlertDialog.Builder(super.getActivity()); builder.setTitle(super.getActivity().getString(R.string.feedback)); builder.setMessage(msg); try { if (this.quiz.getCurrentQuestion().getScoreAsPercent() >= Quiz.QUIZ_QUESTION_PASS_THRESHOLD) { builder.setIcon(R.drawable.quiz_tick); } else { builder.setIcon(R.drawable.quiz_cross); } } catch (InvalidQuizException e) { e.printStackTrace(); } builder.setPositiveButton( R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface arg0, int arg1) { if (QuizWidget.this.quiz.hasNext()) { QuizWidget.this.quiz.moveNext(); QuizWidget.this.showQuestion(); } else { QuizWidget.this.showResults(); } } }); builder.show(); try { this.quiz.getCurrentQuestion().setFeedbackDisplayed(true); } catch (InvalidQuizException e) { e.printStackTrace(); } }
@Override public String getContentToRead() { // Get the current question text String toRead = ""; try { toRead = quiz.getCurrentQuestion() .getTitle( prefs.getString(PrefsActivity.PREF_LANGUAGE, Locale.getDefault().getLanguage())); } catch (InvalidQuizException e) { e.printStackTrace(); } return toRead; }
private boolean saveAnswer() { try { List<String> answers = qw.getQuestionResponses(quiz.getCurrentQuestion().getResponseOptions()); if (answers != null) { quiz.getCurrentQuestion().setUserResponses(answers); return true; } if (!quiz.getCurrentQuestion().responseExpected()) { return true; } } catch (InvalidQuizException e) { e.printStackTrace(); } return false; }
private void setProgress() { TextView progress = (TextView) getView().findViewById(R.id.quiz_progress); try { if (quiz.getCurrentQuestion().responseExpected()) { progress.setText( super.getActivity() .getString( R.string.widget_quiz_progress, quiz.getCurrentQuestionNo(), quiz.getTotalNoQuestions())); } else { progress.setText(""); } } catch (InvalidQuizException e) { e.printStackTrace(); } }
public void showQuestion() { QuizQuestion q; try { q = this.quiz.getCurrentQuestion(); } catch (InvalidQuizException e) { Toast.makeText( super.getActivity(), super.getActivity().getString(R.string.error_quiz_no_questions), Toast.LENGTH_LONG) .show(); e.printStackTrace(); return; } qText.setVisibility(View.VISIBLE); // convert in case has any html special chars qText.setText( Html.fromHtml( q.getTitle( prefs.getString( PrefsActivity.PREF_LANGUAGE, Locale.getDefault().getLanguage()))) .toString()); if (q.getProp("image") == null) { questionImage.setVisibility(View.GONE); } else { String fileUrl = course.getLocation() + q.getProp("image"); // File file = new File(fileUrl); Bitmap myBitmap = BitmapFactory.decodeFile(fileUrl); File file = new File(fileUrl); ImageView iv = (ImageView) getView().findViewById(R.id.question_image_image); iv.setImageBitmap(myBitmap); iv.setTag(file); if (q.getProp("media") == null) { OnImageClickListener oicl = new OnImageClickListener(super.getActivity(), "image/*"); iv.setOnClickListener(oicl); TextView tv = (TextView) getView().findViewById(R.id.question_image_caption); tv.setText(R.string.widget_quiz_image_caption); questionImage.setVisibility(View.VISIBLE); } else { TextView tv = (TextView) getView().findViewById(R.id.question_image_caption); tv.setText(R.string.widget_quiz_media_caption); OnMediaClickListener omcl = new OnMediaClickListener(q.getProp("media")); iv.setOnClickListener(omcl); questionImage.setVisibility(View.VISIBLE); } } if (q instanceof MultiChoice) { qw = new MultiChoiceWidget(super.getActivity(), getView(), container); } else if (q instanceof MultiSelect) { qw = new MultiSelectWidget(super.getActivity(), getView(), container); } else if (q instanceof ShortAnswer) { qw = new ShortAnswerWidget(super.getActivity(), getView(), container); } else if (q instanceof Matching) { qw = new MatchingWidget(super.getActivity(), getView(), container); } else if (q instanceof Numerical) { qw = new NumericalWidget(super.getActivity(), getView(), container); } else if (q instanceof Description) { qw = new DescriptionWidget(super.getActivity(), getView(), container); } else { return; } qw.setQuestionResponses(q.getResponseOptions(), q.getUserResponses()); this.setProgress(); this.setNav(); }