我在我的應用程序中有一個CountDownTimer
。我正在爲我的學校項目開發一款遊戲。而我在如何自動恢復我的倒計時器方面遇到困難。AutoResume CountDownTimer
所以這是我多麼希望我的countdowntimer做: 點擊imageview的觸發countdowntimer開始(工作)>單擊imageview的停止/暫停countdowntimer> autoresume countdowntimer 10秒後(我的大問題T_T)。
我需要一個autoresume,因爲我正在開發一款遊戲,那麼,通常這是一款遊戲提供的功能,我認爲呢?在我使用的代碼上,點擊暫停圖像查看後,計時器暫停。但是當我再次點擊觸發開始的圖像按鈕時,它會回到59,而不是當我點擊暫停時的時間。
基本上,這是我的第一個應用程序。我現在正在使用Android Studio(我之前使用Eclipse Juno)。我非常需要這些幫助。 TIA :)
public class TimeAttack extends Activity {
\t TextView timer;
\t
\t private CountDownTimer countDownTimer;
\t private boolean timeHasStarted = false;
\t @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.time_attack);
\t \t timer = (TextView) this.findViewById(R.id.timer);
\t \t timer.setText("00:01:00");
\t \t countDownTimer = new MyCountDownTimer(60000,1000);
\t \t
\t \t \t \t
\t \t blizzard.setOnClickListener(new View.OnClickListener() {
\t \t \t
\t \t \t @Override
\t \t \t public void onClick(View v) {
\t \t \t \t
\t \t \t // \t this button should pause the time, and its working YAY!
\t \t \t \t countDownTimer.cancel();
\t \t \t \t \t timeHasStarted = false; \t
\t \t \t \t
\t \t \t }
\t \t });
\t
\t \t //CustomClickListener
\t \t OnClickListener myCommoClickListner = new OnClickListener(){
\t \t \t @Override
\t \t \t public void onClick(View arg0) {
//if an imagebutton is clicked, it will trigger the countdowntimer to start its countdown
\t \t \t \t \t if (!timeHasStarted) {
\t \t \t \t countDownTimer.start();
\t \t \t \t timeHasStarted = true;
\t \t \t \t \t }
}
//COUNTDOWNTIMER
@TargetApi(Build.VERSION_CODES.GINGERBREAD) @SuppressLint("NewApi") public class MyCountDownTimer extends CountDownTimer{
\t \t public MyCountDownTimer(long millisInFuture, long countDownInterval){
\t \t \t super(millisInFuture, countDownInterval);
\t \t }
\t \t @TargetApi(Build.VERSION_CODES.GINGERBREAD) @SuppressLint("NewApi") @Override
\t \t public void onTick(long millisUntilFinished) {
\t \t \t // TODO Auto-generated method stub
\t \t \t long millis = millisUntilFinished;
String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
System.out.println(hms);
timer.setText(hms);
\t \t \t
\t \t }
\t \t @Override
\t \t public void onFinish() {
\t \t \t // TODO Auto-generated method stub
\t \t \t timer.setText("Time's Up!");
\t \t }
我應該在哪裏放這段代碼?我很抱歉,這是我的第一個應用程序,我並不擅長編碼。 @ user3735182 – 2015-02-24 07:00:53
** blizzard.setOnClickListener()的** onClick()**方法** – rohanpro 2015-02-24 09:40:14
嗨,先生/女士,請問我應該在哪裏放這些代碼? (2和3):) – 2015-02-24 12:52:03