Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid toast message (identify the correct answer using radio button)
    primarykey
    data
    text
    <p>I'm developing a quiz. I got an error while showing my toast message. The error is, if the user taps the correct answer, toast says it is the wrong answer even if I tap the correct choice. Help is really appreciated! Here is the code:</p> <pre><code>public class Question2 extends Activity { /** Called when the activity is first created. */ TextView question, items = null; RadioButton answer1 = null; RadioButton answer2 = null; RadioButton answer3 = null; RadioGroup answers = null; int selectedAnswer = -1; int quesIndex = 0; int numEvents = 0; int selected[] = null; int correctAns[] = null; boolean review = false; Button next = null; int score = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.startquiz); try { score = getIntent().getIntExtra("score",0); items = (TextView)findViewById(R.id.displayitems); question = (TextView) findViewById(R.id.displayquestion); answer1 = (RadioButton) findViewById(R.id.option1); answer2 = (RadioButton) findViewById(R.id.option2); answer3 = (RadioButton) findViewById(R.id.option3); answers = (RadioGroup) findViewById(R.id.QueGroup1); next = (Button) findViewById(R.id.selected); next.setOnClickListener(nextListener); selected = new int[Question1.getQuesList().length()]; java.util.Arrays.fill(selected, -1); correctAns = new int[Question1.getQuesList().length()]; java.util.Arrays.fill(correctAns, -1); this.showQuestion(0, review); } catch (Exception e) { Log.e("", e.getMessage().toString(), e.getCause()); } } private void showQuestion(int qIndex, boolean review) { try { JSONObject aQues = Question1.getQuesList().getJSONObject( qIndex); String quesValue = aQues.getString("Question"); if (correctAns[qIndex] == -1) { String correctAnsStr = aQues.getString("CorrectAnswer"); correctAns[qIndex] = Integer.parseInt(correctAnsStr); } question.setText(quesValue.toCharArray(), 0, quesValue.length()); answers.check(-1); answer1.setTextColor(Color.BLACK); answer2.setTextColor(Color.BLACK); answer3.setTextColor(Color.BLACK); JSONArray ansList = aQues.getJSONArray("Answers"); String aAns = ansList.getJSONObject(0).getString("Answer"); answer1.setText(aAns.toCharArray(), 0, aAns.length()); aAns = ansList.getJSONObject(1).getString("Answer"); answer2.setText(aAns.toCharArray(), 0, aAns.length()); aAns = ansList.getJSONObject(2).getString("Answer"); answer3.setText(aAns.toCharArray(), 0, aAns.length()); Log.d("", selected[qIndex] + ""); if (selected[qIndex] == 0) answers.check(R.id.option1); if (selected[qIndex] == 1) answers.check(R.id.option2); if (selected[qIndex] == 2) answers.check(R.id.option3); setText(); if (quesIndex == (Question1.getQuesList().length() - 1)) next.setEnabled(false); if (quesIndex &lt; (Question1.getQuesList().length() - 1)) next.setEnabled(true); if (review) { Log.d("review", selected[qIndex] + "" + correctAns[qIndex]); ; if (selected[qIndex] != correctAns[qIndex]) { if (selected[qIndex] == 0) answer1.setTextColor(Color.RED); if (selected[qIndex] == 1) answer2.setTextColor(Color.RED); if (selected[qIndex] == 2) answer3.setTextColor(Color.RED); } if (correctAns[qIndex] == 0) answer1.setTextColor(Color.GREEN); if (correctAns[qIndex] == 1) answer2.setTextColor(Color.GREEN); if (correctAns[qIndex] == 2) answer3.setTextColor(Color.GREEN); } } catch (Exception e) { Log.e(this.getClass().toString(), e.getMessage(), e.getCause()); } } private void setAnswer() { if (answer1.isChecked()) selected[quesIndex] = 0; if (answer2.isChecked()) selected[quesIndex] = 1; if (answer3.isChecked()) selected[quesIndex] = 2; Log.d("", Arrays.toString(selected)); Log.d("", Arrays.toString(correctAns)); } private OnClickListener nextListener = new OnClickListener() { public void onClick(View v) { for(int i=0; i&lt;correctAns.length; i++){ if ((correctAns[i] != -1) &amp;&amp; (correctAns[i] == selected[i])) { score++; Toast.makeText(getApplicationContext(), "Your answer is correct!", Toast.LENGTH_SHORT).show(); }else { Toast.makeText(getApplicationContext(), "Your answer is wrong...", Toast.LENGTH_SHORT).show(); } } quesIndex++; try { if (quesIndex &gt;= Question1.getQuesList().length()) quesIndex = Question1.getQuesList().length() - 1; } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } showQuestion(quesIndex, review); } }; private void setText() throws JSONException { this.setTitle("Question " + (quesIndex + 1) + " out of " + Question1.getQuesList().length()); items.setGravity(250); } public void reload() { setAnswer(); Intent intent = getIntent(); overridePendingTransition(0, 0); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); finish(); overridePendingTransition(0, 0); startActivity(intent); } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload