Android Chronometer控件实现计时器函数详解

Android Chronometer控件实现计时器函数详解,第1张

概述本文为大家演示了如何使用Chronometer控件实现Android计时器的实例。先贴上最终的实现效果图:

本文为大家演示了如何使用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控件实现计时器函数详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1149435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存