Android控件之Chronometer(定时器)

news/2024/7/5 19:18:50

Chronometer是一个简单的定时器,你可以给它一个开始时间,并以此定时,或者如果你不给它一个开始时间,它将会使用你的时间通话开始。默认情况下它会显示在当前定时器的值的形式“分:秒”或“H:MM:SS的”,或者可以使用的Set(字符串)格式的定时器值到一个任意字符串

1.重要属性

android:format:定义时间的格式如:hh:mm:ss

2.重要方法

setBase(long base):设置倒计时定时器

setFormat(String format):设置显示时间的格式。

start():开始计时

stop():停止计时

setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener):当计时器改变时调用。

 

3.实例

布局文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="4dip"
    android:gravity="center_horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Chronometer android:id="@+id/chronometer"
        android:format="Initial format: "
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:paddingBottom="30dip"
        android:paddingTop="30dip"
        />

    <Button android:id="@+id/start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="开始">
        <requestFocus />
    </Button>

    <Button android:id="@+id/stop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="停止">
    </Button>

    <Button android:id="@+id/reset"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="重置">
    </Button>

    <Button android:id="@+id/set_format"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="设置格式">
    </Button>

    <Button android:id="@+id/clear_format"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="清除格式">
    </Button>

</LinearLayout>

 

主程序

package wjq.WidgetDemo;

import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;

public class ChronometerDemo extends Activity {
private Chronometer mChronometer;
 /* (non-Javadoc)
  * @see android.app.Activity#onCreate(android.os.Bundle)
  */
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.chronometerpage);
  Button button;

        mChronometer = (Chronometer) findViewById(R.id.chronometer);

        // Watch for button clicks.
        button = (Button) findViewById(R.id.start);
        button.setOnClickListener(mStartListener);

        button = (Button) findViewById(R.id.stop);
        button.setOnClickListener(mStopListener);

        button = (Button) findViewById(R.id.reset);
        button.setOnClickListener(mResetListener);

        button = (Button) findViewById(R.id.set_format);
        button.setOnClickListener(mSetFormatListener);

        button = (Button) findViewById(R.id.clear_format);
        button.setOnClickListener(mClearFormatListener);
    }

    View.OnClickListener mStartListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.start();
        }
    };

    View.OnClickListener mStopListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.stop();
        }
    };

    View.OnClickListener mResetListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.setBase(SystemClock.elapsedRealtime());
        }
    };

    View.OnClickListener mSetFormatListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.setFormat("Formatted time (%s)");
        }
    };

    View.OnClickListener mClearFormatListener = new OnClickListener() {
        public void onClick(View v) {
            mChronometer.setFormat(null);
        }
    };
}

 

 


http://www.niftyadmin.cn/n/4472225.html

相关文章

shell之删除elasticsearch30天以前的索引

在elasticsearch的运维工作中&#xff0c;由于es每天会产生大量的日志&#xff0c;如果一直保存不进行删除的话&#xff0c;再大的磁盘空间也会不够用&#xff0c;由此需要删除满足条件的index&#xff0c;从而释放磁盘空间&#xff1b;我们公司的es要求只保留30天的日志即可&a…

Metricbeat 参考指南(步骤3:在Elasticsearch中加载索引模板)

步骤3&#xff1a;在Elasticsearch中加载索引模板 在Elasticsearch中&#xff0c;索引模板用于定义设置和映射&#xff0c;以确定如何分析字段。 Metricbeat推荐的索引模板文件是由Metricbeat包安装的&#xff0c;如果你接受metricbeat.yml配置文件中的默认配置&#xff0c;那么…

android手机屏幕适配补充

如何将一个应用程序适配在不同的手机上&#xff0c;虽然这不算是一个技术问题&#xff0c;但是对于刚刚做屏幕的开发人员来说&#xff0c;还真不是一件多么简单的事情。 首先&#xff1a;你需要在AndroidManifest.xml文件的<manifest>元素如下添加子元素 <supports-sc…

url加密 比较

1.escape 简单来说&#xff0c;escape是对字符串(string)进行编码(而另外两种是对URL)&#xff0c;作用是让它们在所有电脑上可读。 编码之后的效果是%XX或者%uXXXX这种形式。 其中 ASCII字母、数字、*/ &#xff0c;这几个字符不会被编码&#xff0c;其余的都会。 最关键的是&…

ERROR tool.ImportTool: Import failed: java.io.IOException: Generating splits for a textual index col

sqoop任务报错&#xff1a; 异常内容&#xff1a; ERROR tool.ImportTool: Import failed: java.io.IOException: Generating splits for a textual index column allowed only in case of “-Dorg.apache.sqoop.splitter.allow_text_splittertrue” property passed as a par…

Android GridView 横向滚动 一行显示

都知道gridview和listview是android比较重要的数据组件&#xff0c; 接到一个横向显示数据的任务&#xff0c;头大半天&#xff0c;最后只能用gridview试试了。呵呵&#xff0c;费了N多脑细胞&#xff0c;搞定。 布局文件main.xml [java] view plaincopy <?xml version&…

JAVA 获取两个日期间的所有日期

2019独角兽企业重金招聘Python工程师标准>>> public static List<String> getDates(Date startDate, Date endDate){ SimpleDateFormat sdf new SimpleDateFormat("yyyyMMdd"); List<String> dates new ArrayLis…

navicat报错SSH:Unable to load key

navicat的版本比较老了。在加载ssh的pub key时报这个错。这个private key确实可以用来登录服务器。而且navicat也能够加载以前的private key&#xff0c;那么问题只有一个&#xff1a;文件有问题 我的解决办法是安装新版的navicat&#xff0c;问题已解决&#xff01;