2011-06-03 5 views
0

Je développe un jeu. Je veux afficher le score sur le bouton click.but il devrait être affiché que pour quelques secondes.je veux mettre en œuvre le minuteur dans mon application.mais je ne sais pas comment l'appliquer .i recherchés dans les résultats google.but me ont été source de confusion ... étant donné ci-dessous est mon code de la personne me aider ...implémenter minuterie dans mon application

 OnClickListener clickball=new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      score=scorenumber.nextInt(9); 
      id=v.getId(); 

      Log.v("", "u clicked me"); 
      if(id==R.id.ball2) 
      { 
       ball2.setText(Integer.toString(score)); 
      } 
      else if(id==R.id.ball3) 
      { 
       ball3.setText(Integer.toString(score)); 
      } 
      else if(id==R.id.ball5) 
      { 
       ball5.setText(Integer.toString(score)); 
      } 

}}

Répondre

0

Pas besoin d'aller si loin dans votre cas. Chaque vue possède une méthode postDelayed(), qui exécutera un code personnalisé dans le thread d'interface utilisateur après un certain laps de temps (en millisecondes). Par exemple:

ball5.postDelayed(new Runnable(){ 
      @Override 
      public void run() { 
       ball5.setText(""); 
      } 
     }, 3000); 

effacera "ball5" texte après 3 secondes est passé

Un autre exemple ...

if(id==R.id.ball2) 
      { 
       ball2.setText(Integer.toString(score)); 
ball2.postDelayed(new Runnable(){ 
      @Override 
      public void run() { 
       ball2.setText(""); 
      } 
     }, 3000); 
      } 

...

+0

j'ai essayé ça ... mais la chose Si j'utilise cette fonction, il affichera le score seulement après 3 secondes et ne pas effacer le score ... –

+0

Pouvez-vous poster le code? Vous devez d'abord définir le score, puis appelez postDelayed –

+0

merci beaucoup ... beaucoup Alex ... ça m'aide vraiment ... merci 4 ur aide –

1

Quelque chose comme

//Show score here 

Timer timer = new Timer(); 
timer.schedule(new TimerTask() { 
    public void run() { 
      //hide score here 
     } 
}, 2000); 

w mal cacher votre score après deux secondes.

+0

je sais que vous avez répondu à ma question correctement ... mais dans ce cas, la réponse la plus acceptable est la réponse de alex ... désolé ... de toute façon merci beaucoup pour votre aide –

0

vous pouvez utiliser CountDownTimer(); se réfèrent la documentation,

Exemple:

nouvelle CountDownTimer (5000,1000) {

 @Override 
     public void onTick(long millisUntilFinished) {} 

     @Override 
     public void onFinish() { 
      //hide your score here after 5 secondes (5000/1000) 
     } 
    }.start(); 
+0

je sais que vous avez répondu à ma question correctement ... mais dans ce cas la réponse la plus acceptable est la réponse d'alex ... désolé ... de toute façon merci beaucoup pour votre grande aide –

+0

heureux de l'entendre, nous sommes là pour vous aider :) – Houcine

0

Je pense CountDownTimer est que ce dont vous avez besoin: http: //developer.android.com/reference/android/os/CountDownTimer.html. Il est assez simple pour la mise en œuvre

new CountdownTimer(30000, 1000) { 

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

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

} .start();

+0

je sais que vous avez répondu à ma question correctement ... mais dans ce cas la réponse la plus acceptable est la réponse d'alex ... désolé ... de toute façon merci beaucoup pour votre aide –

Questions connexes