第七十二讲:Chronometer定时器(二)

智者创造机会,强者把握机会,弱者等待机会。

本讲内容:定时器

<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"
    android:orientation="vertical"
    tools:context="com.example.text1.MainActivity$PlaceholderFragment" >

   <Chronometer
       android:id="@+id/chronometer"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_marginTop="15dp"
       android:format="%s"
       android:gravity="center"
       android:textColor="#542039"
       android:textSize="25sp"/>
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_marginTop="10dp">
       <TextView
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           android:layout_weight="2"
           android:gravity="center"
           android:text="设置时间:"
           android:textSize="25sp"/>
       <EditText
           android:id="@+id/settime"
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           android:layout_weight="3"
           android:inputType="number"/>
   </LinearLayout>

   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_margin="10dp">
       <Button
           android:id="@+id/start"
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:text="开始记时"/>
       <Button
           android:id="@+id/stop"
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:text="停止记时" />
       <Button
           android:id="@+id/reset"
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:text="重置"/>
   </LinearLayout>

</LinearLayout>
public class MainActivity extends Activity implements OnClickListener{
	private Button star;
	private Button stop;
	private Button reset;
	private EditText settime;
	private Chronometer chronometer;
	private int startTime=0;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		findViews();
		// 设置开始讲时时间
		chronometer.setBase(SystemClock.elapsedRealtime());
		// 开始记时
        chronometer.start();
        chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {

			@Override
			public void onChronometerTick(Chronometer chronometer) {
				// 如果开始计时到现在超过了startime秒
				if(SystemClock.elapsedRealtime()-chronometer.getBase()>10*1000){
					 chronometer.stop();
					 //给用户提示
                     showDialog();
				}
			}
		});
	}

	private void findViews() {
		star=(Button) findViewById(R.id.start);
		stop=(Button) findViewById(R.id.stop);
		reset=(Button) findViewById(R.id.reset);
		settime=(EditText) findViewById(R.id.settime);
		chronometer=(Chronometer) findViewById(R.id.chronometer);

		star.setOnClickListener(this);
		stop.setOnClickListener(this);
		reset.setOnClickListener(this);
	}

	private void showDialog() {
		AlertDialog.Builder builder=new Builder(this);
		builder.setIcon(R.drawable.ic_launcher).setTitle("警告").setMessage("时间到");
		builder.setPositiveButton("确定", null).setNegativeButton("取消", null).show();
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.start:
			String ss=settime.getText().toString();
			if(!(ss.equals("")&&ss!=null)){
				startTime=Integer.parseInt(ss);
			}
			// 设置开始讲时时间
            chronometer.setBase(SystemClock.elapsedRealtime());
            // 开始记时
            chronometer.start();
			break;
		case R.id.stop:
			chronometer.stop();
			break;
		case R.id.reset:
			chronometer.setBase(SystemClock.elapsedRealtime());
			break;
		}
	}
}

本讲就到这里,Take your time and enjoy it

时间: 2024-10-06 13:43:46

第七十二讲:Chronometer定时器(二)的相关文章

(七十六)CoreLocation(二)获取经纬度、速度、方向,进行区域监听

上节说明了如何在iOS7和iOS8上完成授权,并且开始获取位置,这一节介绍获取位置信息的方法. [定位精度] 定位精度有多种选择:根据字面意思即可理解 extern const CLLocationAccuracy kCLLocationAccuracyBestForNavigation; extern const CLLocationAccuracy kCLLocationAccuracyBest; extern const CLLocationAccuracy kCLLocationAccu

第七十八讲:用户界面View之PopupWindow

命运掌握在自己手中.要么你驾驭生命,要么生命驾驭你,你的心态决定你是坐骑还是骑手. 本讲内容:PopupWindow 弹出窗口控件 一.PopupWindow 弹出窗口控件认识 1.Android的对话框有两种:PopupWindow和AlertDialog. 2.它们的不同点在于: AlertDialog的位置固定,而PopupWindow的位置可以随意 AlertDialog是非阻塞线程的,而PopupWindow是阻塞线程的 3.PopupWindow的位置按照有无偏移分,可以分为偏移和无

[COGS 2066]七十与十七

http://218.28.19.228/cogs/problem/problem.php?pid=2066 [题目描述] 七十君最近爱上了排序算法,于是Ta让十七君给Ta讲冒泡排序. 十七君给七十君讲完了冒泡排序以后,七十君回家苦思冥想,又创造了一种名 为七十排序的算法.下面是这个算法排序一个排列的过程: 首先从左到右扫描每个相邻数对.如果这两个数是逆序的,则将第二个数(也 就是小的数)放在整个排列的开头,其他数位置不变,并把计数器加一.如果 没有逆序的相邻数对了,就说明已经排好序了,算法终止

《上古天真论》第十二讲文字版

上古天真论篇第十二讲 主讲:徐文兵  主持:梁  冬 播出时间:2009-02-28  23:00—24:00 经文:黄帝曰:余闻上古有真人者,提挈天地,把握阴阳,呼吸精气,独立守神,肌肉若一,故能寿敝天地,无有终时,此其道生.中古之时,有至人者,淳德全道,和于阴阳,调于四时,去世离俗,积精全神,游行天地之间,视听八达之外,此盖益其寿命而强者也,亦归于真人. 梁冬:是的,重新发现中医太美.大家好,欢迎收听今天的<国学堂>之梁冬和徐文兵老师的请教.徐老师您好! 徐文兵:梁冬好!听众朋友们大家好!

鬼谷子七十二术(完整版)值得永久收藏!终生研读!

静中有动,动中有静,“变生于事.事生谋.谋生计.计生议.议生说.说生进.进生退.退生制,因以于制事”. 第一计 阳谋阴谋 鬼谷子曰:“智略计谋,各有形容,或圆或方,或阴或阳,圣人谋之于阴故曰‘神’,成之于阳故曰‘明’,所谓主事成者,积德也.” 计谋,有阴谋和阳谋之别,在任何情况下,人们都不可轻视对方,因为事件.环境.情报都有假的.所以圣人应该高深莫测.鬼谷子所谓“阴”,是谋之于阴成之于阳.第二计 扭转乾坤鬼谷子曰:“故静固志意,神归其舍,则威覆盛矣,威覆盛,则内实坚,内实坚,则莫当.” 鬼谷子认

C语言第十二讲,文件操作.

C语言第十二讲,文件操作. 一丶文件操作概述 在操作系统中,我们的文档都称为文件.操作系统也为我们提供了接口进行操作.不同语言都是使用的相同的接口,只不过封装的上层接口不一样 操作文件的步骤 打开文件->读写文件->关闭文件. 二丶文件流的概述. 文件流称为 输入流和输出流.  其实就是从内存写数据到磁盘.和从磁盘读数据到内存. 内存->磁盘  称为输出流. 输出到磁盘 磁盘->内存 称为输入流.读取到内存. 三丶文件的打开和关闭. 1.操作原型. FILE *fopen(char

中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八--&gt;12345678)

昨天老大问我又没有写过中文数字转换成阿拉伯数字,我说没有,我说那应该简单啊,就是将中文对应的数字换成阿拉伯数字就好了啊,比如一就换成1,二就换成2…十换成10.可是那么问题来了…… 一十二呢…不能是1102吧…这不就坑爹了吗?一百万呢………所有我苦苦思索,花费了我差不多半天的时间,终于写出了下面的程序. 1 public static void main(String[] args){ 2 3 Map<Character, String> numberMap = new HashMap<

PHP100-第二讲 PHP5.4 Apache Mysql 搭配与多站点配置详解

PHP5.4环境搭配基本流程 关于新版的PHP环境的一个搭配过程,与之前的 php5.3.x 没有太大差异, 这次使用的环境搭配组建包括: httpd-2.2.21-win32-x86 mysql-5.5.18-win32 php-5.4.0RC4-Win32-VC9-x86 //================= LoadModule php5_module "c:/www/php54/php5apache2_2.dll" AddType application/x-httpd-ph

第三百七十节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索结果分页

第三百七十节,Python分布式爬虫打造搜索引擎Scrapy精讲-elasticsearch(搜索引擎)用Django实现搜索结果分页 逻辑处理函数 计算搜索耗时 在开始搜索前:start_time = datetime.now()获取当前时间 在搜索结束后:end_time = datetime.now()获取当前时间 last_time = (end_time-start_time).total_seconds()结束时间减去开始时间等于用时,转换成秒 from django.shortcu

Stm32高级定时器(二)

Stm32高级定时器(二) 1 主从模式:主?从? 谈论主从,可知至少有两个以上的触发或者驱动信号,stm32内部有多个定时器,可以相互之间驱动或者控制. 主模式:定时器使能只受驱动时钟控制或者输出控制信号(TRGO). 从模式:复位模式, 在发生一个触发输入事件时,计数器和它的预分频器能够重新被初始化:同时,如果IMx_CR1寄存器的URS 位为低,还产生一个更新事件UEV :然后所有的预装载寄存器(TIMx_ARR ,TIMx_CCRx)都被更新了. 从模式:门控模式, 计数器的使能依赖于选