2013-02-25 6 views
1

버튼 클릭부터 시작하는 타이머가 2 개인 앱이 있습니다. 사용자가 초카운트 다운 타이머가 다른 시간에 안드로이드 앱에서 시작합니다.

하나의 카운터가 45 초 타이머가, 다른 쪽 (등 10,9,8,7)의 카운트 다운을 볼 수 있도록

가 시작

은 타이머 카운트 다운은 텍스트 뷰에 표시 30 초 타이머. 나는 타이머가 시작될 때 타이머 카운트 다운이 적당한 시간 (초 하나 건너 뛰기)에서 시작하는 초를 보여 주거나 또는 45 초, 43 초, 42 초, 41 초 등의 두 가지 방법 중 하나를 작동시키는 것으로 나타났습니다. 시작 값을 표시하고 직접 (44, 43, 42, 41 등)으로 점프하고 아무 것도 건너 뛰지 않습니다.

궁극적으로이 타이머가 초기 값과 카운트 다운을 합리적으로 표시하고 싶습니다. 나는. 항상 45, 먼저 44, 43,42,41 등을 표시하십시오.

왜 이런 일을하고 있거나하지 않았는 지에 대한 생각은 무엇입니까? 내 클래스에서 Android CountDownTimer를 사용하고 있습니다.

업데이트 : 여기

public CountDown (long millisInFuture, long countDownInterval, Button button) { 
    super(millisInFuture, countDownInterval); 
    this.button = button; 
} 


//Timer Countdown 
@Override 
public void onTick(long millisUntilFinished) { 
    long timeRemaining = (millisUntilFinished/1000); 
    button.setText((millisUntilFinished/1000)+""); 

답변

0

내가 문제를 복제하려고했지만 할 수 없었다 내 CountDownTimer 내 코드입니다. 어쩌면 코드를 게시할까요?

다음은 간단한 테스트입니다. 먼저 45를 표시 한 다음 순차적으로 카운트 다운하고 0으로 끝났습니다.

Button b = (Button) findViewById(R.id.button1); 
    final TextView tv = (TextView) findViewById(R.id.tv_1); 

    b.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      new CountDownTimer(45 * 1000, 1000) { 
       int x = 45; 

       @Override 
       public void onTick(long millisUntilFinished) { 
        tv.setText(Integer.toString(x)); 
        x--; 

       } 

       @Override 
       public void onFinish() { 
        tv.setText("0"); 

       } 
      }.start(); 

     } 
    }); 
+0

죄송합니다 - 제 언어가 잘못되었습니다 - TextView가 아니라 버튼 텍스트입니다. 위의 CountDownTimer에 대한 코드를 업데이트했습니다. - 감사합니다! – Hanny

+0

나는 당신의 방법을 사용하여 끝내지 않았지만, 나는 그것이 작동하기 때문에 답으로 표시 할 것입니다. – Hanny