2012-03-03 79 views
0

這是它的外觀現在:重新啓動倒計時鐘

final CountDownTimer countdown = new CountDownTimer(5000, 1000) { 

    public void onTick(long millisUntilFinished) { 
     clock.setText("Seconds Remaining: " + millisUntilFinished/1000); 
    } 

    public void onFinish() { 
     qcount++; 

     if (qcount < 10) 
     { 
      this.start(); 
      switch (diff) { 

      case 0: //Novice difficulty 

,但它說,倒計時變量不使用,它不會在應用程序運行在所有。

+0

A)變量不以大寫字母開頭B)您試圖遞歸引用您正在創建的事物,這就是爲什麼它告訴您確實尚未初始化它。 – 2012-03-03 18:13:50

+0

所以,如果我明白你的意思,你是說我必須在此之外創建一次?倒計時的聲明看起來如何? – nexus490 2012-03-03 18:15:03

回答

1

您正試圖在將實例化它的匿名類中使用Countdown。倒計時是該類的一個實例,onFinish()在該實例上被調用。

你應該調用onFinish()實例上的start()方法,所以使用'this'。

this.start(); 

編輯:看看吧,如果你是簡單的創建一個新的類,它基本上是自己在做什麼。在新的類定義中,「倒計時」不是一個變量,所以你不能使用它。您只需調用對象onFinish()上的start即可。但是,由於您使用的是匿名類,因此仍然可以從匿名類中訪問外部類的變量,這會導致混淆和錯誤。

+0

我不確定我是否遵循,你能詳細說明一下嗎? – nexus490 2012-03-03 18:21:10

+0

我試過改變它,所以它說this.start();在onFinish方法現在它告訴我,我的倒計時變量是未使用的,並且當我啓動應用程序時,定時器根本不運行。 – nexus490 2012-03-03 18:36:20

+0

除非你使用eventhandlers,onTick打電話。示例代碼中沒有足夠的信息來確定究竟出了什麼問題。 – 13Tazer31 2012-03-03 18:45:03