2012-08-31 130 views
-3

我想爲我的應用程序持續30秒做一個簡單的倒計時,然後結束遊戲,但只要活動加載到手機上,應用程序就會崩潰。這是代碼,是的,我相信這是我的倒計時代碼崩潰的應用程序。Android倒計時錯誤

public void UpdateTime() 
{ 
    CountDownTimer timer = new CountDownTimer(3000, 100) 
    { 


     public void onTick(long l) 
     { 
      Time--; 
      tDown.setText(Time); 
     } 


     public void onFinish() 
     { 
      GameOver(); 
     }; 
    }.start(); 
} 
public void Begin() 
{ 
    UpdateTime(); 

} 
+5

StackTrace請。你的應用爲什麼崩潰? – wtsang02

+3

你應該遵循Java編碼約定:方法和變量以一個小的上限開始(時間 - >時間,GameOver - > gameOver,UpdateTime - > updateTime ...) – assylias

+0

希望你記得1秒= 1000毫秒。因此,30秒= 30000.因此,您的'CountDownTimer計時器=新的CountDownTimer(3000,100)'將開始3秒倒計時,0.1秒滴答週期。不應該導致崩潰,如上所述 - 提供堆棧跟蹤 –

回答

0

我可以看到下面的代碼中的錯別字:

  • 多餘的分號
  • 明確的開始()調用

另外,還要確保你的tDown變量不是null這可能發生當Android無法找到您在findViewById()中指定的ID的TextView時,請致電

試圖修改這樣的代碼:

public void UpdateTime() 
{ 
    CountDownTimer timer = new CountDownTimer(30000, 1000) 
    { 
     public void onTick(long l) 
     { 
      Time--; 
      tDown.setText(Time); 
     } 


     public void onFinish() 
     { 
      GameOver(); 
     } 
    } 
    timer.start(); 
} 
public void Begin() 
{ 
    UpdateTime(); 
} 
4

除了其他人描述的問題,真正的問題是,你要設置的文字是這樣的:

tDown.setText(Time); 

,時間是一個整數。當您將整數傳遞給setText()時,它會查找在strings.xml中聲明的String資源。你真正想要的是

tDown.setText(""+Time);