2017-10-05 4 views
1

질문이 있습니다.
내 활동이 시작되면 첫 번째 카운트 다운이 실행 중입니다.
내가하려는 것은 버튼을 누르면 첫 번째 카운트 다운을 멈추고 두 번째 카운트 다운이 실행됩니다.
두 번째 부분은 작동하지만 처음 카운트 다운을 중단 할 수있는 방법을 모르겠습니다.
버튼에 의해 호출되지 않지만 활동이 시작될 때 시작됩니다.두 번째 시작시 첫 번째 카운트 다운 중지

내가 무슨 말을하는지 이해하기를 바랍니다.
나쁜 영어로 죄송합니다. 당신은 예를 들어, 그것을 중지하려면 당신은 CountDownTimer에 대한 참조를 저장해야

Button finnish; 
TextView letter; 
TextView textViewState, textVievCity, textViewRiver, textViewPlant, textViewAnimal, textViewName; 
EditText editTextState, editTextCity, editTextRiver, editTextPlant, editTextAnimal, editTextName; 
TextView textViewAnswer1, textViewAnswer2, textViewAnswer3, textViewAnswer4, textViewAnswer5, textViewAnswer6; 
TextView timer, timer1; 
public int counter = 120; 
public int finalCounter = 10; 
public int counterStop = 0; 


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

    Button finnish = (Button) findViewById(R.id.buttonFinnished); 
    finnish.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 


      final TextView timer1 = (TextView) findViewById(R.id.textViewFinalCOunter); 
      new CountDownTimer(10000, 1000) { 

       @Override 
       public void onTick(long millisUntilFinished) { 
        timer1.setText(String.valueOf(finalCounter)); 
        finalCounter--; 


       } 

       @Override 
       public void onFinish() { 
        timer1.setText("koniec rundy"); 
       } 
      }.start(); 
     } 
    }); 
    TextView letter = (TextView) findViewById(R.id.textViewLetter); 
    final String[] letters = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "ł", "m", "n", "o", "p", "r", "s", "t", "u", "w", "z"}; 
    int random = (int) (Math.random() * 23); 
    letter.setText(letters[random]); 

    final TextView timer = (TextView) findViewById(R.id.textViewTimer); 



     new CountDownTimer(120000, 1000) { 

      @Override 
      public void onTick(long millisUntilFinished) { 
       if (timer1 != null) { 
        timer.setText(String.valueOf(counterStop)); 
       } else { 

        timer.setText(String.valueOf(counter)); 
        counter--; 
       } 
      } 

      @Override 
      public void onFinish() { 
       timer.setText("koniec rundy"); 
      } 
     }.start(); 

    } 
} 

답변

0

: 여기

내 코드입니다

private CountDownTimer firstCountDown; 

firstCountDown = new CountDownTimer(120000, 1000){...}; 

그런 다음이

@Override 
public void onClick(View v) { 
    firstCountDown.cancel() 
     ... 
} 
+0

이 좋아 내가 이해처럼 CountDownTimer#cancel()와 버튼의 ClickListener에서 그것을 호출하여 아래 첫 번째 카운트를 취소 할 수 있지만 지금은 결과를 텍스트 뷰에 "firstCountDown"을 형성 넣을 수있는 방법 전에 내가하려고했던 것처럼? – MichalG

+0

@MichalG'TextView'를 사용하여 거기에서'timer.getText()'를 호출하여 얻을 수 있습니다. –

관련 문제