Autore Topic: Countdown  (Letto 1008 volte)

Offline Ormet

  • Utente junior
  • **
  • Post: 73
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Play Store ID:
    Ormet
  • Sistema operativo:
    Windows 7
Countdown
« il: 19 Maggio 2012, 07:41:13 CEST »
Salve, ho creato un countdown. Vorrei che quando premo un tasto esso si modifichi per esempio perdendo 5 secondi e in una textview appaia il contenuto per poter essere memorizzato. Il problema è che non riesco a convertire il tempo in una stringa di testo..qualcuno mi può aiutare?
Questo è un piccolo pezzo del programma:
Codice: [Seleziona]
private void updateUI(Intent intent) {
            String counter = intent.getStringExtra("counter");
            String time = intent.getStringExtra("time");
            Log.d(TAG, counter);
            Log.d(TAG, time);
           
            TextView txtDateTime = (TextView) findViewById(R.id.txtDateTime);         
            TextView txtCounter = (TextView) findViewById(R.id.txtCounter);
            txtDateTime.setText(time);
            txtCounter.setText(counter);
    }
   

..praticamente vorrei che oltre a settare il contatore (un cronometro che fa il conto alla rovescia), settasse anche una textview..

Offline NanoAndroide

  • Utente junior
  • **
  • Post: 63
    • Google+
    • Mostra profilo
    • MeToo
  • Dispositivo Android:
    GT-S5570
  • Play Store ID:
    MeToo
  • Sistema operativo:
    Windows 7
Re:Countdown
« Risposta #1 il: 04 Aprile 2013, 13:58:31 CEST »
Se usi un CountDownTimer è molto semplice:

Codice (Java): [Seleziona]
int tempoTotale=30000; //tempo in millisecondi
int intervallo=5000; //ogni quanto tempo aggiorna la textview

final myTimer timer=new myTimer(tempoTotale, intervallo);
TextView tView=(TextView)findViewById(R.id.tuaTextView);

timer.start();

public class myTimer extends CountDownTimer{

                public myTimer(long startTime, long interval) {
                        super(startTime, interval);
                }

                @Override
                public void onFinish() {
                       
                }

                @Override
                public void onTick(long eTime) {                       
                        tView.setText(eTime);
                }      
}
   

In onFinish() metti quello che deve fare allo scadere del tempo... ;)