在我的应用中实现计时器

时间:2011-06-03 09:10:16

标签: android timer

我正在开发一个游戏。我希望在按钮点击时显示得分。但它应该只显示几秒钟。我想在我的应用程序中实现计时器。但我知道如何实现。在google.but结果令我感到困惑...下面给出的是我的代码片段.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));
            }

} }

4 个答案:

答案 0 :(得分:1)

这样的东西
//Show score here

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

将在两秒后隐藏你的分数。

答案 1 :(得分: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);
            }

...

答案 2 :(得分:0)

您可以使用CountDownTimer();参考文档,

示例:

new CountDownTimer(5000,1000){

        @Override
        public void onTick(long millisUntilFinished) {}

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

答案 3 :(得分: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!");
 } 

}开始();