2017-10-05 161 views
1

我有問題。
當我的活動開始時,第一個倒計時正在運行。
我想要做的是停止第一次倒計時,當我按下按鈕,然後第二次倒計時運行。
第二部分工作,但我不知道我怎麼能阻止第一個倒計時。
它不被任何按鈕調用,但它在Activity開始時啓動。第二次啓動時停止第一次倒計時

我希望你明白我在說什麼。
對不起,我的英文不好。

這裏是我的代碼:

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

您需要存儲到CountDownTimer參考,如果你想例如停止

private CountDownTimer firstCountDown; 

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

然後你就可以向下通過調用它在按鈕的ClickListenerCountDownTimer#cancel()取消第一計數這樣

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

好吧,我理解,但現在我怎麼可以把結果形成「firstCountDown」成的TextView就像我之前想要做的一樣? – MichalG

+0

@MichalG你可以使用'TextView'並通過調用'timer.getText()'從那裏得到它。 –

相關問題