单击按钮启动计时器

2023-12-07

我是 Android 编程新手,但我了解 Java。 我的问题是,Android 中的计时器如何工作?我读过最好使用处理程序。 我想做的是,您单击一个按钮,计时器就会启动。到单击按钮的那一刻,我一切都清楚了,但如何启动计时器?


Android 中的计时器如何工作?

你最好读一下定时器文档, 倒计时器文档 and 处理程序文档.

到目前为止,当我点击按钮时,一切都清除了;但是,我怎样才能启动计时器呢?

如果我没有误解你的问题,当你说Timer,你指的是CounteDownTimer。所以,你应该有这样的东西:

(我已经写了一个示例代码。所以,你应该先理解它,然后,你应该将它应用到你的代码中。)

添加Buttons

btn1 = (Button)findViewById(R.id.bt1);
btn2 = (Button)findViewById(R.id.bt2);

添加SetOnClickListener()

btn1.setOnClickListener(new OnClickListener() {
    @Override
        public void onClick(View arg0) {

    });
}

btn2.setOnClickListener(new OnClickListener() {
    @Override
        public void onClick(View arg0) {

    });
}

My btn1开始CountDownTimer,第二个停止并清除它。

现在,我创建一个内部类 with CountDownTimerTest name.

public class CountDownTimerTest extends CountDownTimer {
    public CountDownTimerTest(long startTime, long interval) {
        super(startTime, interval);
    }

    @Override
    public void onFinish() {
        text.setText("Time's up!");
        timeElapsedView.setText("Time Elapsed: " + String.valueOf(startTime));
    }

    @Override
    public void onTick(long millisUntilFinished) {
        text.setText("Time remain:" + millisUntilFinished);
        timeElapsed = startTime - millisUntilFinished;
        timeElapsedView.setText("Time Elapsed: " + String.valueOf(timeElapsed));
    }
}

然后在我的btn1,我把这段代码(启动CountDownTimer):

countDownTimer.start();

而在我的btn2,我把这段代码(停止/取消CountDownTimer):

countDownTimer.cancel();

现在,我希望你能明白如何CountDownTimer有效,如果你的问题不是关于CountDownTimer,请告诉我,我会根据您的意愿尽快更新我的答案。

编辑-只有一个Button

用同样的方法来做Button, 你可以这样做:

创建一个Boolean变量为:

Boolean ButtonClicked = false;

然后,修改代码如下:

btn1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        if (!ButtonClicked)) {
            ButtonClicked = true;
            countDownTimer.start(); 
        } else {
            ButtonClicked = false;
            countDownTimer.cancel();
        }                       
    });
}

编辑2 获取单击的按钮

您可以创建一个int called NumberButtonClicked像这样 :

int NumberButtonClicked = 0;

然后在每个Button你必须这样做(示例):

btn1.setOnClickListener(new OnClickListener() {
    @Override
        public void onClick(View arg0) {
            NumberButtonClicked = 1;
    });
}

然后你就知道如果你点击了btn1你的变量将为 1。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击按钮启动计时器 的相关文章

随机推荐

  • 如何向每个 Angular.js $http 请求添加添加请求参数(例如启动 xdebug 会话)

    我的混合应用程序基于 AngularJS 并使用 php REST api 我想直接从我的 Angular 应用程序调试 php api 而不是使用 REST 控制台或 Postman 它将节省大量时间 特别是对于 POST 和 PUT 请
  • Sed 正则表达式更改文件

    我 未成功 尝试替换 Magento local xml 文件 连接字符串文件 中的数据库主机条目 该行如下
  • Python搜索目录,列出文件的基本名称,没有扩展名

    我想知道我是否可以修改我的代码以仅发布文件的基本名称 而不是包括扩展名的整个文件 我是 python 新手 所以我不太了解 而且我不知道不想修改某些东西并使其完全损坏 import glob import os os chdir C hea
  • 进程运行时不断打印子进程输出

    要从 Python 脚本启动程序 我使用以下方法 def execute command process subprocess Popen command shell True stdout subprocess PIPE stderr s
  • 在 Python 中将 SQLite 3 数据存储为变量

    我是否可以获取存储在 sqlite3 表中的数据并将其用作 Python 变量 我正在寻找可能类似于此伪代码的内容 import sqlite3 conn sqlite3 connect DATABASE cursor conn curso
  • 替换 pandas dataframe 列中的特定值,否则将列转换为数字

    给定以下 pandas 数据框 AgeAt X AgeAt Y AgeAt Z 0 Older than 100 Olde
  • React-router v6 私有路由不能正常工作

    我想用react router V6实现私有和公共路由 我已经尝试了StackOverflow上所有可用的解决方案 它似乎不起作用 这就是为什么我需要澄清 App tsx
  • 在汇编中实现正则表达式“[ab][^r]+r]”的匹配器

    我的汇编代码需要帮助 我需要使用编写代码来找到适合我的正则表达式的范围 我的正则表达式 ab r r 所以首先我寻找是否有 a 或 b 并跳转到 开始 部分 现在我有一个问题如何仅保存这封信的第一次出现 程序应显示 5 10 这意味着 匹配
  • 谷歌是否正在为本地主机生成新的 openid 声明标识符?

    我遇到了 google openid 标识符的问题 我在简单的 asp net mvc 项目中使用 dotnetopenauth 库 dotnetopenid 的后继者 在本地主机上的测试期间 我注意到谷歌有时会生成新的声明标识符 这是为什
  • 非阻塞同步 AJAX

    有没有办法执行同步 AJAX 查询而不冻结浏览器 在我看来 在大多数情况下 同步请求更容易使用 但它们阻止代码其他部分执行的事实才是真正的杀手 有没有一种方法可以实现同步 AJAX 而不会带来负面影响 是的 我意识到术语 同步 AJAX 是
  • 分享锚链接

    我想制作一个以这种形式共享链接的按钮 http example com anchor 但当我点击它时 它只共享 http example com 我怎样才能让它分享我想要的东西 这很简单 您想要共享的 URL 字符串应如下所示 http w
  • 使用 cellfun 将带参数的函数应用到单元格

    假设有一个字符元胞数组 希望将其转换为数字向量 这可以通过使用来完成str2num or str2double 例如 x 0 17106 2 11462 4 13938 6 24203 cellfun str2num x str2doubl
  • 如何比较 Excel 单元格中的文本以查看是否找到相同的单词?

    我有几行 Excel 单元格 其中包含一串单词 所有单词均以逗号分隔 我想将每个单元格与另一个单元格进行比较 以检查是否有任何单词匹配 重复 例如 单元格 A1 dog cat rabbit mouse lion bear tiger单元格
  • C 中多个数组的笛卡尔积

    我能够在 C 中实现静态数组数量的笛卡尔积 但是我想动态构建一个代码 获取输入数组的数量 有人可以阐明如何 仅使用数组 来做到这一点 如果不可能对于数组 请建议我其他解决方案 谢谢 下面是我的 3 个数组的笛卡尔积的代码 include
  • Magento 产品等级价格在产品图片更新时被删除

    我创建了一个脚本来以编程方式更新我的产品图片 但我的脚本删除了所有 tier prices product gt save 这是我的图像更新脚本 foreach productCollection as product formatted
  • 设置 ORACLE_HOME 的正确方法?

    在 OS X 上 我的 ORACLE HOME 环境变量应该是 usr local oracle or usr local oracle instantclient 10 2 它应该设置为包含您的 bin 目录的目录的值 在您的情况下 我认
  • 如何使用经典 ASP 保存画布图像?

    我有点卡在这里 我知道我可以使用 canvas toDataURL 生成一个 base64 编码的字符串 以传递到我的服务器上的经典 ASP 页面 但我似乎找不到答案的问题是如何处理这些数据 以便我可以将其保存在服务器上的某个位置 因此 通
  • 在谷歌地图叠加层中使用 d3 绘制路径

    我将 d3 js 与谷歌地图一起使用 徒劳地尝试可视化无线覆盖范围 基本思想是地图上的每个点都代表一个接入点 我将使用这些点的 voronoi 图作为覆盖范围等的粗略近似值 所以基于此demo 我有以下内容
  • javascript 事件不适用于使用 json 添加的动态内容

    我陷入了这样一种情况 我的 DOM 元素是基于动态生成的 getJSON该元素的 Javascript 函数不起作用 我将在我的代码中发布一些总体想法 因为我只是在寻找在这种情况下应该做什么的方向 site js包含一般功能 例如 docu
  • 单击按钮启动计时器

    我是 Android 编程新手 但我了解 Java 我的问题是 Android 中的计时器如何工作 我读过最好使用处理程序 我想做的是 您单击一个按钮 计时器就会启动 到单击按钮的那一刻 我一切都清楚了 但如何启动计时器 Android 中