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