android开发循环问题与计时器

时间:2014-06-21 19:49:42

标签: java android

我需要一些帮助在android中循环一个计时器。我需要它循环5次然后在最后一次运行/倒计时停在0,但似乎可以让它工作。我知道这可能很简单。

任何有帮助的人都会感激任何帮助。

package com.project.secondproject;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {
    private int countdownValue;
    private TextView textfield;
    private Handler handler;
    private boolean Running;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void start(View view){
        int countdownValue = 30;
                int counter = 0;
        Running = true;
        textfield = (TextView)findViewById(R.id.Timer);
        handler = new Handler();
        Runnable runnable = new Runnable(){
            @Override
                public void run(){
                while(Running){
                    try{
                        //This controls the interval of the timer. every 1 second
                        Thread.sleep(1000);}
                    catch(InterruptedException e){
                        e.printStackTrace();
                    }
                    handler.post(new Runnable(){
                        @Override
                        public void run(){
                            countdownValue -= 1;
                            textfield.setText(String.valueOf(":" + countdownValue));
                            if(countdownValue == 1){
                                Running = false;
                            }
                        }
                    });
                }
            }
        };
        new Thread(runnable).start();
    }

    public void pause(View view){
        Running = false;
    }
}//End of class

1 个答案:

答案 0 :(得分:0)

希望这就是你要找的东西。试试这个。!

  public void run() 
          { 
         while(Running){
            for (int counter = 5; counter > 0; counter++) 
            { 
              System.out.println(" loop..." + counter); 
              try{Thread.sleep(1000);} // 1 second pause 
              catch(Exception e){} 
            } 
    }