CountDownTimer完整具体演示样例

MainActivity例如以下:

package cc.cv;

import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
/**
 * Demo演示样例:
 * CountDownTimer完整具体演示样例
 * 代码非常easy,直接看凝视就可以
 *
 * CountDownTimer是Android4.0引入的倒计时
 */
public class MainActivity extends Activity {
	private Button mStartButton;
	private Button mCancelButton;
    private CountDownTimerSubClass mCountDownTimerSubClass;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		init();
	}

	private void init(){
		mCountDownTimerSubClass=new CountDownTimerSubClass(15*1000, 1000);
		mStartButton=(Button) findViewById(R.id.startButton);
		//開始倒计时
		mStartButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View view) {
				mCountDownTimerSubClass.start();
			}
		});
		//取消倒计时.
		//再次调用CountDownTimer的start时会又一次開始倒计时.
		mCancelButton=(Button) findViewById(R.id.cancelButton);
		mCancelButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View view) {
				mCountDownTimerSubClass.cancel();
			}
		});
	}

	private class CountDownTimerSubClass extends CountDownTimer{
		/**
		 * millisInFuture 倒计时间
		 * countDownInterval 每两次倒计时之间的间隔
		 */
		public CountDownTimerSubClass(long millisInFuture,long countDownInterval) {
			super(millisInFuture, countDownInterval);
		}

		/**
		 * 倒计时结束
		 */
		@Override
		public void onFinish() {
			System.out.println("结束");
		}

		/**
		 * 每个倒计时间点到来时均会触发该方法
		 * millisUntilFinished表示整个倒计时剩余的时间
		 */
		@Override
		public void onTick(long millisUntilFinished) {
			long remainedSeconds=millisUntilFinished/1000;
			System.out.println("剩余: "+remainedSeconds+" s");
		}

	}

}

main.xml例如以下:

<RelativeLayout 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"
    >

    <Button
        android:id="@+id/startButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dp"
        android:text="start" />

     <Button
        android:id="@+id/cancelButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/startButton"
        android:layout_marginTop="100dp"
        android:text="cancel" />

</RelativeLayout>
时间: 2024-12-21 21:34:23

CountDownTimer完整具体演示样例的相关文章

Android利用Volley异步载入数据完整具体演示样例(二)

MainActivity例如以下: package cc.y; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.os.Bundle; import android.util.LruCache; import android.widget.ImageVie

PHPCMS中GET标签概述、 get 标签语法、get 标签创建工具、get 调用本系统演示样例、get 调用其它系统演示样例

一.get 标签概述 通俗来讲,get 标签是Phpcms定义的能直接调用数据库里面内容的简单化.友好化代码,她可调用本系统和外部数据,仅仅有你对SQL有一定的了解,她就是你的绝世好剑!也就是适合熟悉SQL语句的人使用.有了她,我们打造个性化的站点,能很方便的调用出数据库里面指定的内容.通过条件限制,我们能够调用出不同条件下的不同数据. 二.get标签样式 {get dbsource=" " sql=" "} {/get} 三.get 标签语法 1.get标签属性值

Android之——多线程下载演示样例

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46883927 一.概述 说到Android中的文件下载.Android API中明白要求将耗时的操作放到一个子线程中运行,文件的下载无疑是须要耗费时间的.所以要将文件的下载放到子线程中运行. 以下,我们一起来实现一个Android中利用多线程下载文件的小样例. 二.服务端准备 在这个小样例中我下面载有道词典为例.在网上下载有道词典的安装包,在eclipse中新建项目web.将下载

Eureka 的 Application Service client的注冊以及执行演示样例

Eureka 服务器架起来了(关于架设步骤參考博客<Linux 下 Eureka 服务器的部署>),如今怎样把我们要负载均衡的服务器(也就是从 Application Client 接收请求并返回一个响应的 Application Service)注冊到 Eureka?本文以一个演示样例介绍 Eureka Application Service 客户端的 Eureka 生命周期(包含启动时的注冊.侍服演示样例.关闭时的取消注冊)情况.相信读完本文之后,读者能够对 Eureka 的 Applic

关于栈及其应用演示样例

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/30802249 作者:小马 作为一种经常使用的数据结构, 了解栈对于算法的学习是很必要的. 栈有先进后出的特点,栈底指向数据表中的第一个元素.栈顶指向最后一个元素的下一个位置. 例如以下图所看到的: 栈和线性表类似.也是有两种存储结构.分别为顺序结构和链式结构. 大部分情况下,栈使用前者.这和它的使用场景有关.由于通常情况下我们不会对栈进行频繁地.随机地插入,删除操作.以下是我用顺

图标插件--jqplot实现柱状图及饼图,表盘图演示样例

柱状图 在jqPlot图表插件使用说明(一)中,我们已经能够通过jqPlot绘制出比較简单的线形图.通过查看源码.我们也能够看出,线形图是jqPlot默认的图表类型: [javascript] view plaincopy /** * Class: Series * An individual data series object.  Cannot be instantiated directly, but created * by the Plot oject.  Series propert

10分钟理解Android数据库的创建与使用(附具体解释和演示样例代码)

1.Android数据库简单介绍. Android系统的framework层集成了Sqlite3数据库.我们知道Sqlite3是一种轻量级的高效存储的数据库. Sqlite数据库具有以下长处: (1)零配置,无需安装和配置: (2)储存在单一磁盘文件里的一个完整的数据库. (3)数据库文件能够在不同字节顺序的机器间自由共享: (4)支持数据大小至2TB: (5)足够小.全部源码大致3万行C代码.250KB: (6)比眼下流行的大多数数据库的操作要快. (7)开源. 2.Sqlite 基本操作语句

『HTML5梦幻之旅』 - 仿Qt演示样例Drag and Drop Robot(换装机器人)

起源 在Qt的演示样例中看到了一个有趣的demo.截图例如以下: 这个demo的名字叫Drag and Drop Robot,简单概括而言,在这个demo中,能够把机器人四周的颜色拖动到机器人的各个部位,比方说头.臂,身躯等.然后这个部位就会变成相应的颜色.相似于换装小游戏. 上图就是经过愚下的拖动颜色使其简略换装后的样子. 当然,拖动颜色使部件变色的功能并不难实现,关键在于这个机器人是动态的,我们要研究的就恰恰是这个机器人动画是怎么做出来的. 光凭两张图片我们无法知道这个动画究竟是什么样子的,

Eureka 的 Application Client client的执行演示样例

上篇以一个 demo 演示样例介绍了 Eureka 的 Application Service 客户端角色.今天我们继续了解 Eureka 的 Application Client 客户端,以一个简单的交互演示样例,介绍 Application Client 是怎样使用 Eureka 获取 Application Service 实例并发送请求的.        上篇<Eureka 的 Application Service 客户端的注冊以及执行演示样例>使用了一个 Socket 服务做为 d