J'utilise le code suivant pour mettre à jour un minuteur dans mon interface utilisateur. Le problème avec ce code cependant, c'est que chaque seconde passée, il met à jour de +1 seconde. Je pense que je comprends pourquoi cela se produit, mais je ne sais pas comment y remédier.Mise à jour du minuteur de l'interface utilisateur du gestionnaire
private Handler mHandler = new Handler();
....
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
mDifference = System.currentTimeMillis() - mStartTime;
workSum = workSum + mDifference;
TextViewTime.setText("Time so far: " + formatTime(workSum));
mHandler.postDelayed(this, 1000);
}
};
public void onClick(View v) {
switch (v.getId()) {
case R.id.start_button:
startButton.setEnabled(false);
stopButton.setEnabled(true);
if (mStartTime == 0L) {
mStartTime = System.currentTimeMillis();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 1000);
}
Une aide serait grandement appréciée!
Belle! Cela a fait l'affaire. En passant par les mathématiques peut vraiment aider il semble;). Merci beaucoup! – Nexis
Vous êtes les bienvenus. – MByD