本文用 Android 中的 CountDownTimer 类实现倒计时功能,类似输入手机号获得验证码。界面如下所示:

1. 点击 “开始计时” 按钮后开始进行倒计时,

2. 倒计时过程:

3. 时间结束后按钮变为 “重新验证”,点击后重新开始计时。

功能很简单,Java 代码如下:

public class MainActivity extends Activity {

    private TimeCount time;
private Button checking; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); time = new TimeCount(60000, 1000);// 创建CountDownTimer对象(设置时间为60秒)
checking = (Button) findViewById(R.id.button1);
checking.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
time.start();// 开始计时
} });
} /**
* 倒计时内部类
*/
class TimeCount extends CountDownTimer { public TimeCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);// 参数:总时长,计时间隔
} @Override
public void onFinish() {// 计时完毕时触发
checking.setText("重新验证");
checking.setClickable(true);
} @Override
public void onTick(long millisUntilFinished){// 计时过程显示
checking.setClickable(false);
checking.setText(millisUntilFinished /1000 + "秒");
}
}
}

布局代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.testandroid.MainActivity" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/phone_number" /> <EditText
android:hint="@string/input_number"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
/> <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/begin"
/> </LinearLayout>

主要来自:http://www.cnblogs.com/-cyb/archive/2011/12/18/Android_CountDownTimer.html,本人稍加整理。

最新文章

  1. 使用 Git 管理源代码
  2. PHP弱类型安全问题的写法和步骤
  3. 另一个分区工具GNU的parted[转自vbird]
  4. 【AS3 Coder】任务七:初涉PureMVC——天气预报功能实现
  5. 搭建集群必备:windows如何使用Xshell远程连接(SSH)Linux
  6. Activity之间定时跳转
  7. Ubuntu 组态 Tomcat而每天的错误解决
  8. win2008服务器部署系统前需要做的一些工作
  9. Linux之Shell命令
  10. [再寄小读者之数学篇](2014-04-01 from 2103471050@qq.com 曲线积分)
  11. ant gradle curl等工具原理以及使用记录
  12. CentOS设置服务开机启动的两种方法
  13. Linux 查看对外开放端口
  14. Mysql windows版本的安装
  15. 189. Rotate Array(Array)
  16. 在 Yosemite 装 Jave 的方法. ( 适用于 OS X 10.10 )
  17. 安卓程序代写 网上程序代写[转]eclipse快捷键
  18. cordova打包APK,报错:Cannot evaluate module CordovaLib : Configuration with name &#39;debug&#39; not found.
  19. shuffle() 函数
  20. 数据分析-pandas基础入门(一)

热门文章

  1. Python机器学习经典实例电子版和附带源码
  2. HDU 1565:方格取数(1)(最大点权独立集)***
  3. git简单使用-GitHub
  4. Intent对象(组件间的通信原理)
  5. 用JAVA打印出棱形
  6. Docker笔记(一):什么是Docker
  7. 作者联系方式D1
  8. KETTLE数据上传
  9. MyBatis select标签的用法
  10. ZIP:ZipStream