Android_(控件)Chronometer計時器


 

Android Chronometer(計時器)

繼承TextView,顯示的是某個時間點開始以及之后的時間增加

 

運行截圖

 

 

程序結構

 

 

package com.example.administrator.myapplication;

import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener,Chronometer.OnChronometerTickListener{

    private Chronometer chronometer;
    private Button btn_start,btn_stop,btn_base;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        chronometer = (Chronometer) findViewById(R.id.chronometer);
        btn_start = (Button) findViewById(R.id.btnStart);
        btn_stop = (Button) findViewById(R.id.btnStop);
        btn_base = (Button) findViewById(R.id.btnReset);

        chronometer.setOnChronometerTickListener(this);
        btn_start.setOnClickListener(this);
        btn_stop.setOnClickListener(this);
        btn_base.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btnStart:
                chronometer.start();// 開始計時
                break;
            case R.id.btnStop:
                chronometer.stop();// 停止計時
                break;
            case R.id.btnReset:
                chronometer.setBase(SystemClock.elapsedRealtime());// 復位
                break;
        }
    }

    @Override
    public void onChronometerTick(Chronometer chronometer) {
        String time = chronometer.getText().toString();
        if(time.equals("00:00")){
            Toast.makeText(MainActivity.this,"開始計時",Toast.LENGTH_SHORT).show();
        }
    }
}
MainActivity

 

<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.administrator.myapplication.MainActivity"
    android:padding="5dp">

    <Chronometer
        android:id="@+id/chronometer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textSize="60dip" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dip"
        android:orientation="vertical">

        <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_main.xml

 

 

Chronometer主要的方法

 

//開始
mChronometer.start();
//停止
mChronometer.stop();
//設置初始值(重置)
mChronometer.setBase(long base);
//事件監聽器,時間發生變化時可進行操作
mChronometer.setOnChronometerTickListener();
//設置格式(默認"MM:SS"格式)
mChronometer.setFormate("%s");

 

  按鈕事件

  public void onClick(View v) {
        switch (v.getId()){
            case R.id.btnStart:
                chronometer.start();// 開始計時
                break;
            case R.id.btnStop:
                chronometer.stop();// 停止計時
                break;
            case R.id.btnReset:
                chronometer.setBase(SystemClock.elapsedRealtime());// 復位
                break;
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM