Android Chronometer控件实现计时器函数详解
程序员文章站
2024-03-01 13:59:46
本文为大家演示了如何使用chronometer控件实现android计时器的实例。
先贴上最终的实现效果图:
android计时器实现思路
使用chronomet...
本文为大家演示了如何使用chronometer控件实现android计时器的实例。
先贴上最终的实现效果图:
android计时器实现思路
使用chronometer控件实现计器的操作。通过设置setbase(long base)来设置初始时间,然后为其添加一个 setonchronometerticklistener(chronometer.onchronometerticklistener l)事件来判断时间是否到了,然后再调用其stop()方法实现停止计时。
android计时器实现代码
main.xml:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/back" android:gravity="center" android:orientation="vertical" > <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="10dip" android:orientation="horizontal" > <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="4" android:gravity="center" android:text="设置时间:" /> <edittext android:id="@+id/edt_settime" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:inputtype="number" /> </linearlayout> <chronometer android:id="@+id/chronometer" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:textcolor="#ff0000" android:textsize="60dip" /> <linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="10dip" android:orientation="horizontal" > <button android:id="@+id/btnstart" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="开始记时" /> <button android:id="@+id/btnstop" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="停止记时" /> <button android:id="@+id/btnreset" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="重置" /> </linearlayout> </linearlayout>
activity代码:
package com.jiahui.chronometer; import android.app.activity; import android.app.alertdialog; import android.app.dialog; import android.content.dialoginterface; import android.os.bundle; import android.os.systemclock; import android.text.format.time; import android.view.view; import android.widget.button; import android.widget.chronometer; import android.widget.edittext; public class chronometerdemoactivity extends activity { private int starttime = 0; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); final chronometer chronometer = (chronometer) findviewbyid(r.id.chronometer); button btnstart = (button) findviewbyid(r.id.btnstart); button btnstop = (button) findviewbyid(r.id.btnstop); button btnrest = (button) findviewbyid(r.id.btnreset); final edittext edtsettime = (edittext) findviewbyid(r.id.edt_settime); btnstart.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { system.out.println("--开始记时---"); string ss = edtsettime.gettext().tostring(); if (!(ss.equals("") && ss != null)) { starttime = integer.parseint(edtsettime.gettext() .tostring()); } // 设置开始讲时时间 chronometer.setbase(systemclock.elapsedrealtime()); // 开始记时 chronometer.start(); } }); btnstop.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { // 停止 chronometer.stop(); } }); // 重置 btnrest.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { chronometer.setbase(systemclock.elapsedrealtime()); } }); chronometer .setonchronometerticklistener(new chronometer.onchronometerticklistener() { @override public void onchronometertick(chronometer chronometer) { // 如果开始计时到现在超过了startime秒 if (systemclock.elapsedrealtime() - chronometer.getbase() > starttime * 1000) { chronometer.stop(); // 给用户提示 showdialog(); } } }); } protected void showdialog() { alertdialog.builder builder = new alertdialog.builder(this); builder.seticon(r.drawable.eb28d25); builder.settitle("警告").setmessage("时间到") .setpositivebutton("确定", new dialoginterface.onclicklistener() { @override public void onclick(dialoginterface dialog, int which) { } }); alertdialog dialog = builder.create(); dialog.show(); } }
以上就是关于android chronometer控件实现计时器的相关函数,希望对大家学习android软件编程有所帮助。