Android_Chronometer計時器

最近做一個項目用到Handler 和Message ,開始時不是很明白,不了解其中的內部機制,所以開發起來有點難度,之后自己找了Android 時間服務 這一節的內容,總結了一點關于時間的知識,在這里大概寫一下,也給更多有需要的童鞋參考參考:

1. 這里首先來的是定時器Chronometer ,這是一個組件,在可視化視圖中可以直接拖拽過去,然后自己設置相關的屬性,我平時直接邊界XML布局文件實現,個人感覺這樣思路不會混亂。定時器比較簡單,沒有很多復雜的方法,大家只要記住重要的3個方法:start(); stop(); setBase(); 前兩個方法沒有參數,是啟動和停止計時器的方法,后面的是重置計時器的,可以有參數,參數是從那個時間開始計時。先來看看效果圖:

?

步驟:

?1】 布局采用線性布局,自己砌上去就行了。不多說

?2】onChronometerTick事件方法是計時器每秒回調的方法,我們可以用它來更新UI,看下面的代碼:

package com.android.android_chronometer;

import java.text.SimpleDateFormat;
import java.util.Date;
import android.os.Bundle;
import android.os.SystemClock;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.Chronometer.OnChronometerTickListener;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener,
?? ??? ?OnChronometerTickListener {

?? ?private Button btnStart, btnStop, btnReset;
?? ?private TextView textViewCurrentTime;
?? ?// 定時器,一個可以自己設定開始時間的定時器
?? ?private Chronometer chronometer;
?? ?private SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");;

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

?? ??? ?btnStart = (Button) this.findViewById(R.id.buttonBegin);
?? ??? ?btnStop = (Button) this.findViewById(R.id.buttonStop);
?? ??? ?btnReset = (Button) this.findViewById(R.id.buttonReset);
?? ??? ?textViewCurrentTime = (TextView) this
?? ??? ??? ??? ?.findViewById(R.id.textViewCurrentTime);
?? ??? ?chronometer = (Chronometer) this.findViewById(R.id.chronometer1);

?? ??? ?btnStart.setOnClickListener(this);
?? ??? ?btnStop.setOnClickListener(this);
?? ??? ?btnReset.setOnClickListener(this);

?? ??? ?chronometer.setOnChronometerTickListener(this);
?? ??? ?// 設定顯示的計時格式
?? ??? ?chronometer.setFormat("計時器:%s");
?? ?}

?? ?@Override
?? ?public boolean onCreateOptionsMenu(Menu menu) {
?? ??? ?// Inflate the menu; this adds items to the action bar if it is present.
?? ??? ?getMenuInflater().inflate(R.menu.main, menu);
?? ??? ?return true;
?? ?}

?? ?@Override
?? ?public void onClick(View v) {
?? ??? ?// TODO Auto-generated method stub
?? ??? ?switch (v.getId()) {
?? ??? ?case R.id.buttonBegin:
?? ??? ??? ?// 計時器啟動
?? ??? ??? ?chronometer.start();
?? ??? ??? ?break;
?? ??? ?case R.id.buttonStop:
?? ??? ??? ?// 計時器停止
?? ??? ??? ?chronometer.stop();
?? ??? ??? ?break;
?? ??? ?default:
?? ??? ??? ?// 以當前時刻重新計時
?? ??? ??? ?chronometer.setBase(SystemClock.elapsedRealtime());
?? ??? ??? ?break;
?? ??? ?}
?? ?}

?? ?/** 定時器沒秒回調的方法,這樣可以在UI界面上更新數據 */
?? ?@Override
?? ?public void onChronometerTick(Chronometer chronometer) {
?? ??? ?// TODO Auto-generated method stub
?? ??? ?textViewCurrentTime.setText("當前時間:" + formatter.format(new Date()));
?? ?}

}


3】Handler 和Message 在后面的筆記中記錄。

轉載于:https://www.cnblogs.com/Isaber-blogs/p/3211026.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376514.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376514.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376514.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

補碼

3.經常使用數值編碼 因為機器數在計算時,假設符號位和數值位同一時候參與運算,則可能會產生錯誤結果;而假設單獨考慮符號問題,又會添加運算器件的實現難度。因此,為了使計算機可以方便地對數值進行各種算術…

置頂 | wolai博客

最近用wolai記錄筆記較多,這里放一下我wolai的地址,當然csdn這邊也會同時更文。 hanhan的博客

深入研究Clang(四) Clang編譯器的簡單分析

作者:史寧寧(snsn1984)首先我們確定下Clang編譯器的具體內容和涵蓋范圍。之前在《LLVM每日談之二十 Everything && Clang driver 》中曾經提到過,Clang driver(命令行表示是clang)和Clang前端&…

Expression Trees 參數簡化查詢

ASP.NET MVC 引入了 ModelBinder 技術,讓我們可以在 Action 中以強類型參數的形式接收 Request 中的數據,極大的方便了我們的編程,提高了生產力。在查詢 Action 中,我們可以將 Expression Trees 用作參數,通過自定義的…

為你的程序添加監聽器

平時在寫程序時經常會遇到監聽器,比如按鈕的click監聽器,按鍵監聽器等等。而android中的監聽器和java中的回調函數是同一個概念,都是在底層代碼中定義一個接口來調用高層的代碼。那么什么是回調函數呢?網上說的是“在WINDOWS中&am…

圖像處理

android圖像處理系列之四--給圖片添加邊框(上) http://www.oschina.net/question/157182_40586 android圖像處理系列之六--給圖片添加邊框(下)-圖片疊加 http://www.osc…

Git push 時每次都需要密碼的疑惑

2015.1.13更新: 在本地搭建Git服務器時,也是有每次操作需要密碼的情況。 是因為每次做推送動作時,Git需要認證你是好人。所以需要密碼。 可以在 /home/username/.ssh/authorized_keys 文件里添加你的 ssh 公鑰。一行一個。這樣就可以在你push…

ruby字符串處理

1. str"abc123"puts str[0].chr > a puts str[0] >a的ascii碼 2.中文字符串的正則表達式 文本編碼:utf-8 文件第一行:#encoding:urf-8 require "iconv" str"八萬"reg/(.)萬/datareg.match(str)result Iconv.i…

PHP+七牛云存儲上傳圖片代碼片段

2014年11月14日 16:37:51 第一段代碼是上傳單個圖片的,第二個是上傳多個圖片的 1 //上傳到七牛2 //單個文件3 //formname: 表單名字; pre: 圖片Url中顯示的圖片名字(也就是七牛中的key)4 public function upImage($formname, $pre)5 {6 if (empty($_FI…

【PS】Gold words tutorials 赤金字教程

material_01material_021. White background and black words.The font of "Laker" is Teenick, and "Huang" is 中國龍粗魏碑2.Open material_01 and select a part of it.Copy and paste the part part into our workspace.You can drag and move to pa…

iOS 鍵盤的關閉

iOS 鍵盤的關閉 //通過委托來放棄 “第一響應者” #pragma mark - UITextField Delegate Method -(BOOL)textFieldShouldReturn:(UITextField*)textField {[textField resignFirstResponder];return YES; } //通過委托來放棄 “第一響應者” #pragma mark - UITextView Delegat…

遞歸與分治

今天總算把第三章遞歸與分治看完了,呵呵,沒想到開頭就給我來了點打擊,看以后不認真學還真不行了! 為了祝賀初戰告捷,把幾個簡單的題目貼上來吧,紀念一下! 《整數因子分解》 大于1的正整數n可以分…

Android中的Handler機制

直接在UI線程中開啟子線程來更新TextView顯示的內容,運行程序我們會發現,如下錯 誤:android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.翻譯過來就是&…

初來乍到

從今天開始,我也加入博客園這個大家庭了,希望能和大家一起學習IT技術,共同進步。小弟初來乍到,望大家能多多關照!轉載于:https://www.cnblogs.com/markwave/p/3227777.html

JQuery學習四(過濾選擇器)

&#xff1a;first選擇第一個元素。$&#xff08;“div:first”&#xff09;進行選擇第一個<div> :last 選擇最后一個最后一個元素 $&#xff08;"div:last"&#xff09;選取最后一個<div> [:not(選擇器&#xff09;] 選擇不滿足“選擇器”條件的元素 $…

160 - 1 Acid burn

環境&#xff1a;Windows XP sp3 先打開&#xff0c;看看長什么樣&#xff1a; OD載入&#xff0c;右鍵->查找->所有參考文本字串 找到Sorry,The serial is incorect 找到后就在反匯編窗口跟隨&#xff0c;往上翻&#xff1a; 0042F998 /. 55 push ebp 0…

跟樹有關的數據結構學習系列之概覽

1.Binary Search Tree&#xff08;BST&#xff09; 二叉搜索樹 2.B-Tree 3.BTree 4.B*Tree轉載于:https://www.cnblogs.com/devindong/p/3233041.html

在社會實踐中長本領

暑假回到家&#xff0c;家里要我在自家店里幫忙&#xff0c;做員工。因為我家跟舅舅家合資開了一家家禽凍品批發部&#xff0c;生意興旺&#xff0c;越做越大&#xff0c;忙得不可開交。在自家店里做員工&#xff0c;當然&#xff0c;家里人都很高興&#xff0c;我也樂意。在員…

Animating Layout Changes(展開收起)

原文地址&#xff1a;https://developer.android.com/training/animation/layout.html#add &#xff08;1&#xff09;設置布局文件&#xff1a; <LinearLayout android:id"id/container"android:animateLayoutChanges"true"... /> &#xff08;2&am…

160 - 2 Afkayas.1

環境&#xff1a; Windows Xp sp3 OD載入&#xff1a; 運行&#xff0c;然后輸入&#xff1a; 然后回到OD&#xff0c;按F12來暫停&#xff0c; 然后ALTF9回到程序領空&#xff0c;把彈出的那個錯誤消息框點掉&#xff0c;這時OD來到這里&#xff1a; 004025F9 . 68 E81…