当前位置: 首页 > 知识库问答 >
问题:

当倒数计时器停止时,如何停止计算点击次数?

柴瀚昂
2023-03-14

因为我是机器人的新手,请帮助我。在我的应用程序中,当我单击文本框时,它会开始计算点击次数,并在倒数计时器启动后单击文本框。我希望我的计数器 (mCount) 在倒数计时器完成时停止,我还希望当计时器完成时没有人可以单击文本框意味着文本框变得不可单击,直到用户按下重置按钮。提前感谢!

这是我的代码:文本视图电视,t1;

Button reset;
private int mCount = 0;
private final long startTime = 5 * 1000;
private final long interval = 1 * 1000;
private CountDownTimer countDownTimer;
private boolean timerStarted = false;
private MediaRouteButton textView2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_play_game);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    tv  = (TextView)findViewById(R.id.tv1);
    tv.setText("5"); // starting from 5.
    reset=(Button)findViewById(R.id.reset);
    final TextView countTextView = (TextView) findViewById(R.id.TextViewCount);
    t1=(TextView)findViewById(R.id.textView2);
    countDownTimer = new MyCountDownTimer(startTime, interval);
    t1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!timerStarted) {
                countDownTimer.start();
                timerStarted = true;

            }
            mCount++;
            countTextView.setText("SCORE: " + mCount);
        }


    });
 reset.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
         Intent intent = getIntent();
         finish();
         startActivity(intent);
     }
 });

}
public class MyCountDownTimer extends CountDownTimer {

    private TextView mTextField;

    public MyCountDownTimer(long startTime, long interval) {

        super(startTime, interval);

    }

    @Override

    public void onFinish() {



        mTextField.setText("done!");

    }


    @Override

    public void onTick(long millisUntilFinished) {

        tv.setText("" + millisUntilFinished / 1000);

    }
}

}

共有2个答案

林富
2023-03-14

只需维护在计时器停止时为真的标志,在增加计数器之前检查标志是否为假

滕项明
2023-03-14

当计时器结束时,您可以使用View.setClickable(布尔值)暂时禁用单击:

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

您可以在最方便重新启动计时器时将可单击状态更改回来。

 类似资料:
  • 怎么停止这个计时器,知道吗? 我想重置计时器在每个查询,但它继续。每个新的查询都会添加新的计时器。这个怎么解决?

  • 我有一个Swing计时器(javax.swing.Timer),用于在自定义Swing组件中执行一些动画。 然而,这会导致问题——特别是,即使在所有窗口都关闭后,它似乎也会阻止应用程序终止,因为实时计时器线程。此外,当看不到动画时,最好避免计时器在隐藏对象上运行的开销。 理想情况下,我希望做到以下几点: < li >当组件隐藏时停止计时器 < li >每当组件变得可见时,重新启动计时器 这是可能的

  • 我通过创建固定数量的线程来使用执行器服务来进行HTTP GET数据检索。 当Tomcat停止时,我们会出现以下错误: 严重:web应用程序[/viewer]似乎已启动名为[ThreadExecutor_51616156]的线程,但未能停止该线程。这很可能会造成内存泄漏。 这是真的吗?在没有这些服务错误的情况下,如何正确停止tomcat。

  • 问题内容: 我已将一个WAR文件部署到Tomcat服务器,该类之一将在启动时调用,然后init()方法将安排一个计时器,每5小时触发一次以执行一些任务。 我的init()代码如下所示: 我的应用程序运行没有问题,但是当我使用 /etc/init.d/tomcat7 stop 关闭Tomcat时,我检查了日志(catalina.out),它具有以下条目: 严重:Web应用程序[/ MyApplica

  • 下面是我的代码:(它非常混乱,我只是在收集我的想法。我有一个更正式的程序,它要大得多,我将在稍后实现它) 当我选择A-E时,我会弹出一个带有“选择”或“取消”的对话框。我不希望原来的框架关闭。

  • 问题内容: 我需要一些有关在PHP中启动和停止计时器的信息。我需要测量从我的.exe程序开始(我在PHP脚本中使用函数)到完成执行并显示所花费的时间(以秒为单位)之后经过的时间。 我怎样才能做到这一点? 问题答案: 您可以使用并计算差异: 这是PHP的文档:http : //php.net/manual/zh/function.microtime.php

  • 我正在用摇摆计时器打卡NetBeans: 我只是用System.out.print来测试程序,它不是真正程序的一部分。我调用停止()方法,但计时器继续计数。此外,我通过但它的计数速度是原来的两倍。有人能帮忙吗? 编辑: 这是我的计时器(有点像SSCCE): 它不能正常工作,因为秒没有出现,但它确实显示了20次,这就是我想要的。这只是在它自己的应用程序中,在我的实际程序中更容易看到问题。 我注意到游

  • 问题内容: 我是EJB 3的新手。我使用以下代码启动无尽的EJB 3计时器,然后将其部署在JBOSS 4.2.3上 然后叫它 效果很好。我创建了一个客户端类,该客户端类调用一个创建计时器的方法和一个在计时器超时时调用的方法。 我忘了打电话给cancel,然后它不会停止。redeploy with cancel call从不停止它。重新启动Jboss 4.2.3永远不要停止它。如何停止EJB计时器?