热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android开发实现的计时器功能示例

本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。

本文实例讲述了Android开发实现的计时器功能。分享给大家供大家参考,具体如下:

效果图:

d5a84558bdcc0af4756c90b2c0f81fc0.gif

布局:

三个按钮 加上一个Chronometer

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity"

android:orientation="vertical"

android:gravity="center_horizontal">

android:id="@+id/test"

android:textSize="25pt"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:id="@+id/start"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="开始"

android:layout_weight="1"/>

android:id="@+id/pause"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="暂停"

android:layout_weight="1"/>

android:id="@+id/go_on"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="继续"

android:layout_weight="1"/>

实现:

四个监听事件 三个按钮 一个计时器

package com.example.a30797.androidtest;

import android.os.SystemClock;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.Chronometer;

public class MainActivity extends AppCompatActivity {

Chronometer ch ;

Button start ;

Button pause ;

Button restart ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//获取计时器组件

ch = (Chronometer) findViewById(R.id.test);

//获取开始按钮

start = (Button) findViewById(R.id.start) ;

//暂停计时按钮

pause = (Button) findViewById(R.id.pause);

//继续计时按钮

restart = (Button) findViewById(R.id.go_on);

start.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//设置开始计时时间

ch.setBase(SystemClock.elapsedRealtime() );

//启动计时器

ch.start();

pause.setEnabled(true);

restart.setEnabled(false);

start.setEnabled(false);

}

});

//暂停按钮监听器

pause.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

start.setText("重新开始");

ch.stop();

start.setEnabled(true);

restart.setEnabled(true);

pause.setEnabled(false);

}

});

//暂停按钮监听器

restart.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

start.setText("重新开始");

ch.start();

start.setEnabled(true);

pause.setEnabled(true);

restart.setEnabled(false);

}

});

//为Chronomter绑定事件监听器

ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {

@Override

public void onChronometerTick(Chronometer chronometer) {

//如果计时到现在超过了一小时秒

if ( SystemClock.elapsedRealtime() - ch.getBase() > 3600 * 1000) {

ch.stop();

start.setEnabled(true);

restart.setEnabled(false);

pause.setEnabled(false);

}

}

});

}

}

PS:这里再为大家推荐几款相关的在线工具供大家参考:

希望本文所述对大家Android程序设计有所帮助。



推荐阅读
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • Java图形化计算器设计与实现
    本文介绍了使用Java编程语言设计和实现图形化计算器的方法。通过使用swing包和awt包中的组件,作者创建了一个具有按钮监听器和自定义界面尺寸和布局的计算器。文章还分享了在图形化界面设计中的一些心得体会。 ... [详细]
  • 1简介本文结合数字信号处理课程和Matlab程序设计课程的相关知识,给出了基于Matlab的音乐播放器的总体设计方案,介绍了播放器主要模块的功能,设计与实现方法.我们将该设 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • SmartRefreshLayout自定义头部刷新和底部加载
    1.添加依赖implementation‘com.scwang.smartrefresh:SmartRefreshLayout:1.0.3’implementation‘com.s ... [详细]
author-avatar
澳洲开奥拓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有