本文为大家演示了如何使用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软件编程有所帮助。
总结以上是内存溢出为你收集整理的Android Chronometer控件实现计时器函数详解全部内容,希望文章能够帮你解决Android Chronometer控件实现计时器函数详解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)