安卓实现计数器有四种方式,直接给代码

1、使用Thread+Handler

  1. ;
  2.  
  3. private Handler handler1 = new Handler() {
  4. @Override
  5. public void handleMessage(Message msg) {
  6. super.handleMessage(msg);
  7. tvNumber.setText(msg.what + "");
  8. }
  9. };
  10.  
  11. private void counter1() {
  12. number = ;new Thread() {
  13. public void run() {
  14. ) {
  15. Message msg = handler1.obtainMessage();
  16. msg.what = number;
  17. handler1.sendMessage(msg);
  18. try {
  19. Thread.sleep();
  20. } catch (InterruptedException e) {
  21. e.printStackTrace();
  22. }
  23. number--;// 数字
  24. }
  25. };
  26. }.start();
  27. }

2、仅使用Handler

  1. private void counter2() {
  2. Message msg = handler2.obtainMessage();
  3. msg.what = ;
  4. handler2.sendMessageDelayed(msg, );
  5. }
  6.  
  7. Handler handler2 = new Handler() {
  8. public void handleMessage(Message msg) {
  9. super.handleMessage(msg);
  10. int num = msg.what;
  11. tvNumber.setText(num + "");
  12. ) {
  13. num--;
  14. Message message = handler2.obtainMessage();
  15. message.what = num;
  16. handler2.sendMessageDelayed(message, );
  17. }
  18. };
  19. };

3、使用android.os.CountDownTimer类实现

  1. private void counter3() {
  2. , ) {
  3. public void onTick(long millisUntilFinished) {
  4. tvNumber.setText(millisUntilFinished / + "");
  5. }
  6.  
  7. public void onFinish() {
  8. tvNumber.setText(");
  9. }
  10. }.start();
  11. }

4、使用Timer+handler

  1. ;
  2.  
  3. private TimerTask timerTask;
  4.  
  5. private Timer timer;
  6.  
  7. private void counter4() {
  8. number = ;
  9. timerTask = new TimerTask() {
  10.  
  11. @Override
  12. public void run() {
  13. ){
  14. Message msg = handler1.obtainMessage();
  15. msg.what = number;
  16. handler1.sendMessage(msg);
  17. number --;
  18. }
  19. }
  20. };
  21.  
  22. timer = new Timer();
  23. timer.schedule(timerTask, , );
  24. }

Android计数器的实现(倒计时)的更多相关文章

  1. Android—实现自定义相机倒计时拍照

    这篇博客为大家介绍Android自定义相机,并且实现倒计时拍照功能 首先自定义拍照会用到SurfaceView控件显示照片的预览区域,以下是布局文件: 两个TextView是用来显示提示信息和倒计时的 ...

  2. Android自定义View之倒计时Countdown实现

    先看一下效果: 在点击OK键之后,开始倒计时. 实现步骤 1.新建Android工程"CountdownView" 2.自定义Drawable 自定义View并没有直接的用户交互, ...

  3. [转]Android实现计时与倒计时(限时抢购)的几种方法

    在购物网站的促销活动中一般都有倒计时限制购物时间或者折扣的时间,这些都是如何实现的呢? 在一个安卓客户端项目中恰好遇到了类似的问题,一开始使用的是Timer与 TimerTask, 虽然此方法通用,但 ...

  4. Android基础之CountDownTimer 倒计时类

    app常用的60s倒计时计时功能: private static final int TIME_LIMIT = 60; private void initView() { // 相关控件 mResen ...

  5. android 特卖列表倒计时卡顿问题

    在Android的开发中,我们经常遇见倒计时的操作,通常使用Timer和Handler共同操作来完成.当然也可以使用Android系统控件CountDownTimer,这里我们封装成一个控件,也方便大 ...

  6. Android发送验证码的倒计时button

    1 直接上图 2 原理 原理非常easy,就是把对应的倒计时逻辑等封装到一个控件中,并向外部提供接口. 3 代码 import java.util.Timer; import java.util.Ti ...

  7. Android实现多个倒计时优化与源代码分析

    由于之前有个项目需求是须要时时刻去更新UI倒计时,之前想到的,这简单嘛,用计时或者Handler就能够搞定,并且性能也不错,可是需求要ListView,什么,?大量的View都须要,那Handle处理 ...

  8. Android CountDownTimer 类实现倒计时

    本文用 Android 中的 CountDownTimer 类实现倒计时功能,类似输入手机号获得验证码.界面如下所示: 1. 点击 “开始计时” 按钮后开始进行倒计时, 2. 倒计时过程: 3. 时间 ...

  9. Android实现计时与倒计时(限时抢购)的几种方法

    在购物网站的促销活动中一般都有倒计时限制购物时间或者折扣的时间,这些都是如何实现的呢? 在一个安卓客户端项目中恰好遇到了类似的问题,一开始使用的是Timer与 TimerTask, 虽然此方法通用,但 ...

随机推荐

  1. ListView中每个item条目在被单击选中时能够高亮显示

    在布局文件中设定: android:listSelector="@android:color/holo_red_light" 在代码中实现 listView.setSelector ...

  2. VS2013安装oepncv2.4.10 以及opencv 3.0.0

    Author:Maddock Date:2014.12.27 …………………………………………………………………………………………………… PS: VS2013 + OPENCV 3.0.0 的安装, ...

  3. whl文件安装

    进入whl文件的目录,直接pip install ...即可

  4. 一个简单的Object Hook的例子(win7 32bit)

    Object Hook简单的来说就是Hook对象,这里拿看雪上的一个例子,因为是在win7 32位上的,有些地方做了些修改. _OBJECT_HEADER: kd> dt _OBJECT_HEA ...

  5. ubuntu 安装fcitx输入法

    ubuntu 14 的环境 我用的ibus输入法和firefox 36.0.4 版本相互冲突,有bug.在输入栏无法选中,以及复制.查其原因是ibus输入法有问题,需要重新换个输入法. 我先卸载了ib ...

  6. Loadrunner中参数化实战(7)-Unique+Each iteration

    参数化数据30条: 脚本如下,演示登录,投资,退出操作是,打印手机号: 首先验证Vugen中迭代: Unique+Each iteration 设置迭代4次Action 结果如下:

  7. POJ 1159 回文串-LCS

    题目链接:http://poj.org/problem?id=1159 题意:给定一个长度为N的字符串.问你最少要添加多少个字符才能使它变成回文串. 思路:最少要添加的字符个数=原串长度-原串最长回文 ...

  8. 阻止Ajax多次提交

    1.Ajax的abort() xhr = $.ajax({}) if (xhr){ xhr.abort(); } 2.通过在Ajax的beforeSend()方法以及complete()方法添加删除类 ...

  9. Nico Nico Ni~(完全背包)

    Time Limit:2000MS  Memory Limit:65535K Type: Program   Language: Not Limited Description Lys plays L ...

  10. 建立Maven工程时出错,Failure to transfer com.thoughtworks.xstream:xstream:jar:1.3.1

    Failure to transfer com.thoughtworks.xstream:xstream:jar: from http://repo1.maven.org/maven2 was cac ...