2016-02-20 1 views
-2

J'ai une minuterie dans mon programme Android:paramètre dans runOnUiThread

timer1= new Timer(); 
     timer1.schedule(new TimerTask() { 
      @Override 
      public void run() { 
       TimerMethod(); 
      } 

     }, 0, 3000); 


private void TimerMethod() 
{ 
    this.runOnUiThread(Timer_Tick); 
} 


private Runnable Timer_Tick = new Runnable() { 
     public void run() { 
      //my code 
}} 

Je veux envoyer un paramètre à Timer_Tick de TimerMethod, dans un autre mot que je veux un paramètre d'entrée pour Timer_Tick,

J'ai changé mon code à:

int input1=10; 
timer1= new Timer(); 
      timer1.schedule(new TimerTask() { 
       @Override 
       public void run() { 
        TimerMethod(input1); 
       } 

      }, 0, 3000); 



    private void TimerMethod(int myinput) 
    { 
     this.runOnUiThread(Timer_Tick); 
//How pass myinput to Timer_Tick???????????? 

    } 

que dois-je faire?

+0

Quel est le problème en l'ajoutant alors? –

+0

http://stackoverflow.com/questions/7761723/android-howto-pass-data-to-the-runnable-in-runonuithread – sasikumar

Répondre

0

Vous pouvez créer une nouvelle classe (MyTimerTask) qui met en œuvre l'd'interface Runnable, et a la méthode d'exécution. Dans cette classe, ajoutez votre paramètre comme l'un des champs de classe et définissez dans le constructeur de celui-ci avec la valeur désirée. Le reste serait vraiment simple et facile:

public class MyTimerTask implements Runnable 
{ 
    private String param ; 

    public MyTimerTask(String param) 
{ 
this.param = param 
} 

@Override 
public void run() 
{ 
//your code 
} 
} 

MyTimerTask mytimertask = new MyTimerTask(myparameter); 

timer1.schedule(mytimertask,0,3000) ; 
+0

merci, mais je ne veux pas écrire une autre classe, y at-il un autre moyen? – Mary

+0

Vous pouvez faire de votre paramètre un membre statique de la classe actuelle afin que la méthode d'exécution y ait accès –

+0

Ensuite, vous devez prendre ma solution et créer quatre objets différents de MyTimerTask. Je ne comprends pas pourquoi vous ne voulez pas créer une autre classe. –