电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android實現計時器功能

瀏覽:6日期:2022-09-19 13:16:14

本文實例為大家分享了Android實現計時器功能的具體代碼,供大家參考,具體內容如下

計時器工具類

import android.annotation.SuppressLint;import android.os.Handler;import android.os.Message; import androidx.annotation.NonNull; import java.util.Timer;import java.util.TimerTask; /** * 用于計時,在主線程中使用此方法 */public class ChjTimer { private int time;//設置倒計時 X 秒 private int interval = 1000;//設置間隔時間 private ChjTimerInter chjTimerInter; //回調 private Timer timer; // 定時器 private static final int WHAT_REFREH = 0;//刷新 /** * 創建對象則開始計時 * * @param chjTimerInter 接口回調 */ public ChjTimer(ChjTimerInter chjTimerInter) {this.chjTimerInter = chjTimerInter; } /** * 創建對象開始計時 * @param interval 間隔時間通知(使用第一個方法,默認1秒鐘刷新一次) * @param chjTimerInter 接口回調 */ public ChjTimer(int interval, ChjTimerInter chjTimerInter) {this.chjTimerInter = chjTimerInter;this.interval = interval; } /** * 開始計時 */ public void start(int time) {this.time = time;if (timer == null){ timer = new Timer();} else { stop(); return;}timer.schedule(new TimerTask() { @Override public void run() {timesss.sendMessage(new Message()); }}, interval); } /** * 終止計時 */ public void stop() {if (timer != null) { timer.cancel(); timer = null;}if (timesss != null) timesss.removeMessages(WHAT_REFREH);if (chjTimerInter != null)chjTimerInter.stop(time); } @SuppressLint('HandlerLeak') private Handler timesss = new Handler() {@Overridepublic void handleMessage(@NonNull Message msg) { super.handleMessage(msg); if (msg.what != WHAT_REFREH) return; time -= 1; if (chjTimerInter != null) chjTimerInter.second(time); if (time == 0) {if (timer == null) return;timer.cancel();timer = null;if (chjTimerInter != null) chjTimerInter.expire(); } else if (time > 0) {timer.schedule(new TimerTask() { @Override public void run() {timesss.sendMessage(new Message()); }}, interval); }} }; /** * 接口 */ public interface ChjTimerInter { /** * 間隔時間內回調 */void second(int time); /** * 完成回調 */void expire(); /** * 終止計時 */void stop(int time); } }

使用演示

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.TextView; public class MainActivity extends Activity implements View.OnClickListener, ChjTimer.ChjTimerInter { private TextView tiems,timnew; private ChjTimer chjTimer; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tiems = findViewById(R.id.time);timnew = findViewById(R.id.timnew);findViewById(R.id.but).setOnClickListener(this);findViewById(R.id.buts).setOnClickListener(this); chjTimer = new ChjTimer(this); } @Override public void onClick(View view) {switch (view.getId()){ case R.id.but:tiems.setText('10');timnew.setText('正在計時');chjTimer.start(10);break; case R.id.buts:chjTimer.stop();break;} } @Override public void second(int time) {tiems.setText(time + ''); } @Override public void expire() {timnew.setText('計時完成'); } @Override public void stop(int time) {timnew.setText('計時終止' + time); }}

頁面布局

<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:app='http://schemas.android.com/apk/res-auto' xmlns:tools='http://schemas.android.com/tools' android:orientation='vertical' android:layout_gravity='center' android:gravity='center' android:layout_width='match_parent' android:layout_height='match_parent' tools:context='.MainActivity'> <TextViewandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:text='計時完成'app:layout_constraintBottom_toBottomOf='parent'app:layout_constraintLeft_toLeftOf='parent'app:layout_constraintRight_toRightOf='parent'app:layout_constraintTop_toTopOf='parent' /> <TextViewandroid: android:text='0'android:layout_width='wrap_content'android:layout_height='wrap_content' /> <Buttonandroid: android:text='開始'android:layout_width='wrap_content'android:layout_height='wrap_content' /> <Buttonandroid: android:text='終止'android:layout_width='wrap_content'android:layout_height='wrap_content' /> </LinearLayout>

演示效果

Android實現計時器功能

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: 流量检测仪-气密性检测装置-密封性试验仪-东莞市奥图自动化科技有限公司 | 拉曼光谱仪_便携式|激光|显微共焦拉曼光谱仪-北京卓立汉光仪器有限公司 | 上海新光明泵业制造有限公司-电动隔膜泵,气动隔膜泵,卧式|立式离心泵厂家 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 山东活动策划|济南活动公司|济南公关活动策划-济南锐嘉广告有限公司 | 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 | 活性炭-蜂窝-椰壳-柱状-粉状活性炭-河南唐达净水材料有限公司 | 香港新时代国际美容美发化妆美甲培训学校-26年培训经验,值得信赖! | 钢化玻璃膜|手机钢化膜|钢化膜厂家|手机保护膜-【东莞市大象电子科技有限公司】 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 精准猎取科技资讯,高效阅读科技新闻_科技猎 | 雷蒙磨,雷蒙磨粉机,雷蒙磨机 - 巩义市大峪沟高峰机械厂 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 天品互联-北京APP开发公司-小程序开发制作-软件开发 | 新疆十佳旅行社_新疆旅游报价_新疆自驾跟团游-新疆中西部国际旅行社 | 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 代办建筑资质升级-建筑资质延期就找上海国信启航 | 吹塑加工_大型吹塑加工_滚塑代加工-莱力奇吹塑加工有限公司 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 冷却塔减速机器_冷却塔皮带箱维修厂家_凉水塔风机电机更换-广东康明冷却塔厂家 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | POS机办理_个人POS机免费领取 - 银联POS机申请首页 | 长信科技产业园官网_西安厂房_陕西标准工业厂房 | 数控走心机-走心机价格-双主轴走心机-宝宇百科 | 全自动定氮仪-半自动凯氏定氮仪厂家-祎鸿仪器 | 玖容气动液压设备有限公司-气液增压缸_压力机_增压机_铆接机_增压器 | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 对夹式止回阀厂家,温州对夹式止回阀制造商--永嘉县润丰阀门有限公司 | 江西自考网| 水热合成反应釜-防爆高压消解罐-西安常仪仪器设备有限公司 | 山东风淋室_201/304不锈钢风淋室净化设备厂家-盛之源风淋室厂家 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 广州迈驰新GMP兽药包装机首页_药品包装机_中药散剂包装机 |