I am trying to set a for loop with a delay using the handler thread. But when i set up the handler thread within the for loop i cannot use the index of the for loop as it says it must be called final, however that does not work either. Does anyone know how to fix this?
            Asked
            
        
        
            Active
            
        
            Viewed 734 times
        
    -2
            
            
        - 
                    Post your code here for better help... – Vickyexpert Jul 19 '16 at 04:22
 
2 Answers
1
            
            
        To Sleep Thread for while time you have to set for loop outside of postDelayed like below way. In that way you can acheive the Index of the loop.
final ImageButton[] all= {btn1, btn2, btn3, btn4};
Handler handler1 = new Handler();
for (int a = 1; a<= all.length ;a++) {
    handler1.postDelayed(new Runnable() {
         @Override
         public void run() {
             //Here..
         }
         }, 1000 * a);
    } 
}
        Harshad Pansuriya
        
- 20,189
 - 8
 - 67
 - 95
 
0
            
            
        I think you can use CountDownTimer:
new CountDownTimer(30000, 1000) {
    public void onTick(long millisUntilFinished) {
        mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
       //here you can have your logic to set text to edittext
    }
    public void onFinish() {
        mTextField.setText("done!");
    }
}.start();
How to make a countdown Timer in android?
Or even like this:
public void animateTextView(float initialValue, float finalValue, final TextView  textview) {
    ValueAnimator valueAnimator = ValueAnimator.ofFloat(initialValue, finalValue);
    valueAnimator.setDuration(1500);
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            textview.setText(valueAnimator.getAnimatedValue().toString());
        }
    });
    valueAnimator.start();
}