2012-03-06 39 views
0

在我的应用程序中,我保留了暂停按钮和开始按钮默认情况下,我将计时器设置为50秒。当定时器运行时,我为每个按钮编写了onclick动作代码......即当单击暂停按钮时暂停,再次单击开始按钮它又从50秒开始但它应该从暂停的时间开始。我该怎么做?如何在android中暂停倒数计时器?

请帮我....预先感谢.......

我的代码:

long timervalue = 50000; 

btn13 = (ImageView) findViewById(R.id.pause); 
btn14 = (ImageView) findViewById(R.id.resume); 

final CountDownTimer Counter1 = new CountDownTimer(timervalue, 1000) { 
     public void onTick(long millisUntilFinished) { 
      time.setText(formatTime(millisUntilFinished)); 

      btn13.setOnClickListener(new View.OnClickListener() 
      { 
       public void onClick(View v) 
       { 
        Counter1.cancel(); 
       } 

    }); 
      btn14.setOnClickListener(new View.OnClickListener() 
      { 
       public void onClick(View v) 
       { 

        Counter1.start(); 

       } 

    }); 

     } 
public void onFinish() 
{ 
    Counter1.cancel(); 
} 
}; 



public String formatTime(long millis) { 
     String output = "00:00"; 
     long seconds = millis/1000; 
     // long minutes = seconds/60; 

     seconds = seconds % 60; 
     // minutes = minutes % 60; 

     String secondsD = String.valueOf(seconds); 
     // String minutesD = String.valueOf(minutes); 

     if (seconds < 10) 
      secondsD = "0" + seconds; 
     // if (minutes < 10) 
     // minutesD = "0" + minutes; 

     output = secondsD; 
     return output; 
    } 
+0

我是WP7开发者,但这个肯定会帮你http://stackoverflow.com/questions/3510433/countdown-timer-required-on-android – Razor 2012-03-06 11:23:17

+1

发布您的代码代码片段,所以我们可以看看它并根据您的代码向您推荐一些想法。 – 2012-03-06 11:34:30

+0

>请参阅此链接 http://stackoverflow.com/questions/3138348/how-to-stop-cancel-android-countdowntimer – 2012-03-06 11:51:11

回答

0

不幸的是,你不能暂停CountDownTimer,但也有其他方法可以做到什么你想要做的。

试试这个:

public class HelloWorldActivity extends Activity { 
    /** Called when the activity is first created. */ 
    private CountDownTimer ct; 
    private long ts = 30; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final TextView mTextField = (TextView) this.findViewById(R.id.txt); 
     final Button bt = (Button) this.findViewById(R.id.bt); 

     bt.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if(bt.getText().toString().equals("Start")){ 
        bt.setText("Stop"); 
        ct = new CountDownTimer(ts*1000, 1000) { 

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

          public void onFinish() { 
           mTextField.setText("done!"); 
          } 
         }.start(); 
       } 
       else{ 
        bt.setText("Start"); 
        ct.cancel();} 
      } 
     }); 
    } 
} 
+0

嗨感谢您的答复..我试过你的代码,但它显示错误在行ct.cancel(); ....我也编辑我的代码...请检查一次... – RaagaSudha 2012-03-07 10:04:57