Android使用Handler實現(xiàn)倒計時功能
本文實例為大家分享了Android實現(xiàn)倒計時功能的具體代碼,供大家參考,具體內(nèi)容如下
1、實現(xiàn)效果
如下圖所示:
2、代碼實現(xiàn)
新建一個名為CountdownTime的項目,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 { /** * 倒計時標記 */ public static final int COUNTDOWN_TIME_CODE = 99999; /** * 倒計時間隔 */ public static final int DELAY_MILLIS = 1000; /** * 倒計時最大值 */ 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)建一個handler CountdownTimeHandler handler = new CountdownTimeHandler(this); //新建一個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 { /** * 倒計時最小值 */ 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); //獲取對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ù)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
實現(xiàn)Android 滑動退出Activity的功能
這篇文章主要介紹了實現(xiàn)Android 滑動退出Activity的功能的相關(guān)資料,這里提供實例來說明滑動退出應(yīng)用程序的實現(xiàn)代碼,需要的朋友可以參考下2017-08-08android手機獲取gps和基站的經(jīng)緯度地址實現(xiàn)代碼
android手機如何獲取gps和基站的經(jīng)緯度地址,疑問,于是網(wǎng)上搜集整理一些,拿出來和大家分享下,希望可以幫助你們2012-12-12[Alibaba-ARouter]淺談簡單好用的Android頁面路由框架
這篇文章主要介紹了[Alibaba-ARouter]淺談簡單好用的Android頁面路由框架,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11android游戲載入的activity跳轉(zhuǎn)到游戲主菜單的activity具體實現(xiàn)
停止2s后由游戲載入頁面再跳轉(zhuǎn)到游戲菜單頁面,具體實現(xiàn)代碼如下,感興趣的朋友可以參考下哈2013-06-06