Android使用Handler實(shí)現(xiàn)倒計(jì)時(shí)功能
本文實(shí)例為大家分享了Android實(shí)現(xiàn)倒計(jì)時(shí)功能的具體代碼,供大家參考,具體內(nèi)容如下
1、實(shí)現(xiàn)效果
如下圖所示:

2、代碼實(shí)現(xiàn)
新建一個(gè)名為CountdownTime的項(xiàng)目,activity_main.xml代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/countdownTimeTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/maxTime"
android:textSize="60sp" />
</RelativeLayout>
MainActivity.class代碼如下:
public class MainActivity extends AppCompatActivity {
/**
* 倒計(jì)時(shí)標(biāo)記
*/
public static final int COUNTDOWN_TIME_CODE = 99999;
/**
* 倒計(jì)時(shí)間隔
*/
public static final int DELAY_MILLIS = 1000;
/**
* 倒計(jì)時(shí)最大值
*/
public static final int MAX_COUNT = 10;
/**
* 文本控件
*/
private TextView countdownTimeTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化文本控件
countdownTimeTextView = findViewById(R.id.countdownTimeTextView);
//創(chuàng)建一個(gè)handler
CountdownTimeHandler handler = new CountdownTimeHandler(this);
//新建一個(gè)message
Message message = Message.obtain();
message.what = COUNTDOWN_TIME_CODE;
message.arg1 = MAX_COUNT;
//第一次發(fā)送message
handler.sendMessageDelayed(message, DELAY_MILLIS);
}
public static class CountdownTimeHandler extends Handler {
/**
* 倒計(jì)時(shí)最小值
*/
public static final int MIN_COUNT = 0;
//創(chuàng)建MainActivity弱引用
final WeakReference<MainActivity> mWeakReference;
public CountdownTimeHandler(MainActivity activity) {
this.mWeakReference = new WeakReference<>(activity);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//獲取對(duì)MainActivity的弱引用
MainActivity activity = mWeakReference.get();
switch (msg.what) {
case COUNTDOWN_TIME_CODE:
int value = msg.arg1;
activity.countdownTimeTextView.setText(String.valueOf(value--));
//循環(huán)發(fā)送消息的控制
if (value >= MIN_COUNT) {
Message message = Message.obtain();
message.what = COUNTDOWN_TIME_CODE;
message.arg1 = value;
sendMessageDelayed(message, DELAY_MILLIS);
}
break;
}
}
}
}
3、快捷鍵總結(jié)
Ctrl+Alt+F:改變變量的域
Ctrl+Alt+T:surrounded with快捷鍵
Ctrl+P:查看方法的參數(shù)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android實(shí)現(xiàn)View滑動(dòng)效果的6種方法
這篇文章主要介紹了Android實(shí)現(xiàn)View滑動(dòng)的6種方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03
實(shí)現(xiàn)Android 滑動(dòng)退出Activity的功能
這篇文章主要介紹了實(shí)現(xiàn)Android 滑動(dòng)退出Activity的功能的相關(guān)資料,這里提供實(shí)例來(lái)說(shuō)明滑動(dòng)退出應(yīng)用程序的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-08-08
Android Studio設(shè)置繪制布局時(shí)的視圖
這篇文章介紹了Android Studio設(shè)置繪制布局時(shí)視圖的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-11-11
android手機(jī)獲取gps和基站的經(jīng)緯度地址實(shí)現(xiàn)代碼
android手機(jī)如何獲取gps和基站的經(jīng)緯度地址,疑問(wèn),于是網(wǎng)上搜集整理一些,拿出來(lái)和大家分享下,希望可以幫助你們2012-12-12
Android編程之滑動(dòng)按鈕事件實(shí)例詳解
這篇文章主要介紹了Android編程之滑動(dòng)按鈕事件,結(jié)合具體實(shí)例形式分析了Android滑動(dòng)按鈕功能的具體實(shí)現(xiàn)步驟、布局及功能實(shí)現(xiàn)相關(guān)操作技巧,需要的朋友可以參考下2017-03-03
[Alibaba-ARouter]淺談簡(jiǎn)單好用的Android頁(yè)面路由框架
這篇文章主要介紹了[Alibaba-ARouter]淺談簡(jiǎn)單好用的Android頁(yè)面路由框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
android游戲載入的activity跳轉(zhuǎn)到游戲主菜單的activity具體實(shí)現(xiàn)
停止2s后由游戲載入頁(yè)面再跳轉(zhuǎn)到游戲菜單頁(yè)面,具體實(shí)現(xiàn)代碼如下,感興趣的朋友可以參考下哈2013-06-06

