2011-06-03 51 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

相关问题