Android wijzigt de tijd van countDownTimer

mijn applicatie is vragende/antwoordapplicatie, client/server, de client is Android-applicatie en de server is Java Tomcat-servertoepassing

ik wil dat de gebruiker elke vraag in 25 seconden beantwoordt, maar ik zal hem de tijd geven om de vraag te lezen, die tijd hangt af van het aantal woorden dat de vraag heeft, bijvoorbeeld als de vraag 10 woorden heeft, zal ik hem 10 seconden geven lees de vraag en vervolgens 25 seconden om te beantwoorden, zeker zal de gebruiker die de vraag in 10seconden (van de 25 seconden) beantwoordt meer markeringen nemen die de gebruiker die dezelfde vraag in 20seconden beantwoordt

dus mijn problemen zijn hoe je dynamickly de tijd van de countDownTimer kunt bewerken

showHint.setText("Show Hint 2");
//here i have to edit
timeToDirectAnswer.start();

ik weet dat er een manier is om dat te doen door de timer te initialiseren met de dynamische tijd, maar ik wil dat niet doen omdat mijn applicatie afhankelijk is van de workflow en die stroom kan uitwisselen, dus de code zal zo geavanceerd en moeilijk zijn Bewerk

misschien is een andere manier om de countDownTimer voor exacte seconden te laten slapen, maar op deze manier moet ik een andere timer bouwen om de gebruiker te vertellen hoe vaak hij nog moet blijven om te beginnen met tellen

1

1 antwoord

new CountDownTimer(30000, 1000) {

     public void onTick(long millisUntilFinished) {
         mTextField.setText("seconds remaining: " + millisUntilFinished/1000);
     }

     public void onFinish() {
         mTextField.setText("done!");
     }
  }.start();

Dit is de constructordefinitie:

public CountDownTimer (long millisInFuture, long countDownInterval)

Sinds: API Level 1

parameters

millisInFuture : The number of millis in the future from the call to start() until the countdown is done and onFinish() is called.

countDownInterval : The interval along the way to receive onTick(long) callbacks.

EDIT:

U moet de vraag stellen in de String variabele, dan deze string splitsen met (spatie) in een Array , en het aantal rijen zou het aantal woorden van die vraag zijn .

Vervolgens voer je een vergelijking uit om de afteltijd voor het lezen te berekenen:

time=numberOfWords*2000;

Dat is voor elk woord 2 seconden.

2
toegevoegd
je gaf me de definitie van countDownTimer, maar ik wist dat aleardy, ik wil millisInFuture dynamiclly veranderen
toegevoegd de auteur William Kinaan, de bron
bedankt voor het helpen, maar ik schreef in kwestie dat ik de tijd niet wil instellen vanaf de initialisatie van de countDownTimer, ik wil dat doen op de realtime, omdat de gebruiker veel vragen zal ontvangen, dus ik wil de countDowntimer tot 25seconds en bewerk dan die tijd dynamiclly of als je een andere manier hebt om dat te doen, zoals threads of iets anders
toegevoegd de auteur William Kinaan, de bron
@tottie roma: ik heb het antwoord bewerkt.
toegevoegd de auteur Hussain Mahfoodh, de bron