2011-06-03 46 views
0

我正在開發一個game.i想要在按鈕click.but上顯示得分,但它應該只顯示幾秒鐘。我想在我的應用程序中實現計時器。但我dnt knw如何實現。我搜索在google.but結果是困惑我......下面給出的是我的代碼snippet.plz人幫助我...在我的應用程序中實現定時器

 OnClickListener clickball=new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      score=scorenumber.nextInt(9); 
      id=v.getId(); 

      Log.v("", "u clicked me"); 
      if(id==R.id.ball2) 
      { 
       ball2.setText(Integer.toString(score)); 
      } 
      else if(id==R.id.ball3) 
      { 
       ball3.setText(Integer.toString(score)); 
      } 
      else if(id==R.id.ball5) 
      { 
       ball5.setText(Integer.toString(score)); 
      } 

}}

回答

0

沒有必要在你的情況下如此之深。每個視圖都有postDelayed()方法,它將在設定的時間量(以毫秒爲單位)後在UI線程中運行自定義代碼。例如:

ball5.postDelayed(new Runnable(){ 
      @Override 
      public void run() { 
       ball5.setText(""); 
      } 
     }, 3000); 

將清除後3秒 「ball5」 文本已通過

又如 ...

if(id==R.id.ball2) 
      { 
       ball2.setText(Integer.toString(score)); 
ball2.postDelayed(new Runnable(){ 
      @Override 
      public void run() { 
       ball2.setText(""); 
      } 
     }, 3000); 
      } 

...

+0

我試過這個......但是東西如果我使用這個功能,它會在3秒後顯示分數,並且不清除分數... – 2011-06-03 09:25:10

+0

你可以發佈代碼嗎? 你需要先設置得分,然後打電話postDelayed – 2011-06-03 09:29:38

+0

謝謝你所以...多亞歷克斯...它真的幫助我...謝謝你4幫助 – 2011-06-03 09:41:18

1

喜歡的東西

//Show score here 

Timer timer = new Timer(); 
timer.schedule(new TimerTask() { 
    public void run() { 
      //hide score here 
     } 
}, 2000); 

w兩秒後隱藏你的分數。

+0

我知道你回答我的問題是正確的......但在這種情況下,最可以接受的答案是亞歷克斯的答案...對不起......無論如何非常感謝你對我的很大幫助 – 2011-06-03 09:44:30

0

可以使用CountDownTimer();參考文件,

示例:

新CountDownTimer(5000,1000){

 @Override 
     public void onTick(long millisUntilFinished) {} 

     @Override 
     public void onFinish() { 
      //hide your score here after 5 secondes (5000/1000) 
     } 
    }.start(); 
+0

我知道你正確回答我的問題......但在這案件最可以接受的答案是亞歷克斯的答案...對不起...無論如何非常感謝你對我們的很大幫助 – 2011-06-03 09:42:52

+0

很高興聽到它,我們在這裏幫助:) – Houcine 2011-06-03 09:50:28

0

我覺得CountDownTimer是你需要的東西:HTTP://developer.android.com/reference/android/os/CountDownTimer.html。這是相當實施的

new CountdownTimer(30000, 1000) { 

public void onTick(long millisUntilFinished) { 
    mTextField.setText("seconds remaining: " + millisUntilFinished/1000); 
} 

public void onFinish() { 
    mTextField.setText("done!"); 
} 

} .start();

+0

我知道你正確回答我的問題......但在這種情況下最可接受的答案是亞歷克斯的答案...對不起...無論如何,非常感謝你的幫助 – 2011-06-03 09:43:25

相關問題