Créer une incrémentation de la minuterie dans les secondes à 00:00 format?
Je veux créer une incrémentation deuxième timer comme un chronomètre.
Donc, je veux être en mesure d'afficher les secondes et les minutes de l'incrémentation dans le format 00:01...
Google n'apporte 24 heures d'exemples, je me demandais, quelqu'un pourrait-il me commencer avec un exemple ou un tutoriel de ce que je veux faire?
Edit:
Voici ce que j'ai en utilisant le Chronomètre en Android jusqu'à présent
Dans onCreate()
secondsT = 0;
elapsedTimeBeforePause = 0;
stopWatch.start();
startTime = SystemClock.elapsedRealtime();
stopWatch.setBase(elapsedTimeBeforePause);
stopWatch.setOnChronometerTickListener(new OnChronometerTickListener(){
@Override
public void onChronometerTick(Chronometer arg0) {
//countUp is a long declared earlier
secondsT = (SystemClock.elapsedRealtime() - arg0.getBase()) / 1000;
String asText = (secondsT / 60) + ":" + (secondsT % 60);
//textGoesHere is a TextView
((TextView)findViewById(R.id.time)).setText(asText);
}
});
Dans onDestroy()
@Override
public void onDestroy() {
inCall = false;
elapsedTimeBeforePause = SystemClock.elapsedRealtime() - stopWatch.getBase();
super.onDestroy();
}
Ci-dessus compile et s'exécute, mais le TextView jamais incréments, il reste toujours à 0, peut-on savoir pourquoi?
Vous voulez être le comptage en temps Unix et de l'affichage à 00:00 format.
Le chronomètre le problème, ou l'affichage d'une minuterie? Et comment voulez-vous de les afficher, de Swing, de la CLI, page web?
La création de la minuterie à la minute est ce que je veux apprendre comment le faire correctement, la cible est en fait Android et le compteur devra être en mesure d'être affiché dans un TextView - developer.android.com/intl/de/reference/android/widget/...
Le chronomètre le problème, ou l'affichage d'une minuterie? Et comment voulez-vous de les afficher, de Swing, de la CLI, page web?
La création de la minuterie à la minute est ce que je veux apprendre comment le faire correctement, la cible est en fait Android et le compteur devra être en mesure d'être affiché dans un TextView - developer.android.com/intl/de/reference/android/widget/...
OriginalL'auteur Donal Rafferty | 2010-03-29
Vous devez vous connecter pour publier un commentaire.
Je suis en supposant que vous n'êtes pas au courant de l'Android
Chronometer
- il a déjà une base, une fonction chronomètre. Vous avez besoin de travailler avec ses particularités un peu, mais il n'est pas difficile de lui faire faire ce que vous voulez une fois que vous comprenez comment cela fonctionne.Il existe quelques façons que le temps est calculé sur le téléphone, mais les deux principales sont:
Le "temps réel", tels que le droit ici selon mon horloge de l'ordinateur, il est 11:23am en Angleterre. Cependant, cela peut changer si mon ordinateur communique avec un serveur de temps et il est dit qu'il a le mauvais temps, ou si je devais voyager avec un ordinateur portable et traversé un fuseau horaire limite. En utilisant ce serait faire des ravages avec votre chronomètre le temps mesuré peut modifier à tout moment.
Le temps écoulé depuis le démarrage", qui est le nombre de millisecondes écoulées depuis le téléphone était allumé. Ce nombre n'a aucun rapport avec le temps réel, il est, mais il va se comporter d'une manière parfaitement prévisible. C'est ce que l'Android Chronomètre utilise.
La
Chronometer
est essentiellement un " compter jusqu'à minuterie, en comparant le courantSystemClock.elapsedRealtime()
contre la elapsedRealtime() qui a été mis en fot sa base de temps. La différence entre les deux, divisé par 1000, est le nombre de secondes depuis le timer est démarré. Toutefois, si vous avez l'arrêt de la minuterie, puis commencer à nouveau, vous obtiendrez un résultat contre-intuitif - le chronomètre indique le temps écoulé, comme si elle n'avait jamais arrêté. C'est parce que vous avez besoin d'ajuster sa base de temps pour prendre en compte le temps c'était arrêté. C'est simple à faire:Edit: Voici le code complet de base pour un chronomètre, qui affiche votre temps dans un TextView plutôt que le Chronomètre widget de déclarer dans votre fichier XML.
Dans votre main.xml vous avez besoin d'avoir cette
Il y a sans doute un moyen d'obtenir le Chronomètre à travailler, sans le déclarer dans le fichier XML, mais le constructeur
Chronometer stopwatch = new Chronometer(this);
ne fonctionne pas correctement.Le code ci-dessus affiche le temps écoulé d'une manière très simple. Par exemple, si seulement 5 secondes se sont écoulées, il va montrer
0:5
plutôt que de la0:05
vous voulez probablement. De fixation qui n'est pas difficile à faire, mais je vais laisser ça à faire! 🙂Oh, startTime est juste un autre long, à la SystemClock.elapsedRealtime() en même temps que le chronomètre est démarré. Qui donne réellement la même valeur que le chronomètre du temps de base, de sorte que vous pourriez avoir utilisé arg0.getBase().
J'ai mis en œuvre comme ci-dessus (voir post édité) mais le TextView reste à 0 et ne jamais s'incrémente à tous, pouvez-vous voir la raison, par hasard?
Oui, j'ai coupé un coin lors de l'affichage de la réponse, car elle devenait trop long. Je vais modifier ma réponse à fournir tout le problème.
Non, c'est l'ensemble du code et maintenant. Par quelque magie dans
setContentView
oufindViewById(R.id.chrono)
, il initialise le chronomètre correctement. L'exécution de ce code m'affiche correctement une zone de texte avec x:x, incrémentation correctement à chaque seconde.OriginalL'auteur Steve Haley
Comment à ce sujet un Horloge Numérique.
Mais, fondamentalement, vous devriez être en mesure de trouver de nombreuses implémentations java sur google pour des mots-clés comme java, chronomètre, horloge numérique, ...
Vous pouvez prendre un coup d'oeil à Chronomètre Applet et de modifier si nécessaire(Oups pas de source avec celui-ci)Oups désolé de ne pas vérifier le fichier zip. Vérifier élargi répondre
OriginalL'auteur jitter