Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to make a timer on my Android quiz application?
    primarykey
    data
    text
    <p>I am making an Android quiz application and I would like for it to have a timer.. 15 seconds. When the timer finishes it moves to a new question. I really did not tried anything because I really don't have a clue, except a choronometer but it seems like a bad solution... the code:</p> <p>I have added this code for a countdown... and you see when it finishes it goes to a method generateQuestion().. now it generates a new question but the answers are mixed up.. it shows answer from some other questions.. How do I solve this?</p> <pre><code>package com.matej.hajdukkviz; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Random; import com.google.ads.AdRequest; import com.google.ads.AdView; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class Glavno extends Activity implements OnClickListener { int score = 0; int counter = 0; boolean ajme = true; TextView textView1, textView2, textView3, countdown; Button btn1, btn2, btn3, btn4; ArrayList&lt;Question&gt; qsts = new ArrayList&lt;Question&gt;(); List&lt;Integer&gt; generated = new ArrayList&lt;Integer&gt;(); ArrayList&lt;String&gt; allAnswers = new ArrayList&lt;String&gt;(); Random rng = new Random(); Question nextQuestion; Question qjedan = new Question( "Q1", "Correct answer - q1", "Wrong answer 3 - q1", "Wrong answer 3 - q1", "Wrong answer 3 - q1" ); Question q2 = new Question( "Q2", "Correct answer - q2", "Wrong answer 3 - q2", "Wrong answer 3 - q2", "Wrong answer 3 - q2" ); Question q3 = new Question( "Q3", "Correct answer - q3", "Wrong answer 3 - q3", "Wrong answer 3 - q3", "Wrong answer 3 - q3" ); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.pitanja); // ADD THE QUESTIONS IN THE ArrayList qsts new CountDownTimer(20000, 1000) { public void onTick(long millisUntilFinished) { textView4.setText("Seconds remaining: " + millisUntilFinished / 1000); } public void onFinish() { generateQuestion(); textView2.setText("VRIJEME!"); textView2.setTextColor(Color.RED); } }.start(); qsts.add(qjedan); qsts.add(q2); qsts.add(q3); textView1 = (TextView) findViewById(R.id.textView1); textView2 = (TextView) findViewById(R.id.textView2); textView3 = (TextView) findViewById(R.id.textView3); textView3.setText("Rezultat: " + score); btn1 = (Button) findViewById(R.id.btn1); btn2 = (Button) findViewById(R.id.btn2); btn3 = (Button) findViewById(R.id.btn3); btn4 = (Button) findViewById(R.id.btn4); btn1.setOnClickListener(this); btn2.setOnClickListener(this); btn3.setOnClickListener(this); btn4.setOnClickListener(this); generateQuestion(); } public void generateQuestion(){ while(ajme = true){ int nxt = rng.nextInt(3); if (!generated.contains(nxt)){ generated.add(nxt); nextQuestion = qsts.get(nxt); textView1.setText(nextQuestion.questionText); allAnswers.add(nextQuestion.correctAnswerText); allAnswers.add(nextQuestion.wrongAnswer1); allAnswers.add(nextQuestion.wrongAnswer2); allAnswers.add(nextQuestion.wrongAnswer3); Collections.shuffle(allAnswers); btn1.setText(allAnswers.get(0)); btn2.setText(allAnswers.get(1)); btn3.setText(allAnswers.get(2)); btn4.setText(allAnswers.get(3)); break; } } } @Override public void onClick(View v) { Button b = (Button)v; String buttonText = b.getText().toString(); if (counter == 3) { Intent theIntent = new Intent(this, Score.class); theIntent.putExtra("somename", score); startActivity(theIntent); finish(); // Added this method call } else if(buttonText.equals(nextQuestion.correctAnswerText)) { counter++; AdView ad = (AdView) findViewById(R.id.ads); ad.loadAd(new AdRequest()); textView2.setText("TOČNO!"); textView2.setTextColor(Color.GREEN); textView3.setText("Rezultat: " + (score += 10)); allAnswers.clear(); generateQuestion(); return; } else{ counter++; AdView ad = (AdView) findViewById(R.id.ads); ad.loadAd(new AdRequest()); textView2.setText("NETOČNO!"); textView2.setTextColor(Color.RED); textView3.setText("Rezultat: " + (score -= 5)); allAnswers.clear(); generateQuestion(); return; } } </code></pre> <p>}</p>
    singulars
    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.
 

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