最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android自定義倒計(jì)時(shí)按鈕

 更新時(shí)間:2018年05月14日 15:02:38   作者:DylanAndroid  
這篇文章主要為大家詳細(xì)介紹了Android自定義倒計(jì)時(shí)按鈕,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Android自定義倒計(jì)時(shí)按鈕的具體代碼,供大家參考,具體內(nèi)容如下

效果

代碼:

package com.dylan.frame.ui;

import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Button;

import java.util.Timer;
import java.util.TimerTask;

/**
 * 自定義倒計(jì)時(shí)按鈕
 * <p/>
 *
 * @author Dylan
 *   <p/>
 *   [佛祖保佑 永無(wú)BUG]
 *   Created by Dylan on 2015/11/5 0005.
 */
public class CountdownButton extends Button implements View.OnClickListener {
 private long lenght = 60 * 1000;//默認(rèn)倒計(jì)時(shí)時(shí)間;
 private long time;//倒計(jì)時(shí)時(shí)長(zhǎng)
 private Timer timer;//開(kāi)始執(zhí)行倒計(jì)時(shí)
 private TimerTask timerTask;//每次倒計(jì)時(shí)執(zhí)行的任務(wù)
 private String beforeText = "點(diǎn)擊獲取驗(yàn)證碼";
 private String afterText = "秒后重新獲取";
 private OnClickListener onClickListener;//按鈕點(diǎn)擊事件
 /**
  * 更新顯示的文本
  */
 private Handler handler = new Handler() {
  @Override
  public void handleMessage(Message msg) {
   super.handleMessage(msg);
   CountdownButton.this.setText(time / 1000 + afterText);
   time -= 1000;
   if (time < 0) {
    CountdownButton.this.setEnabled(true);

    CountdownButton.this.setText(beforeText);

    clearTimer();
   }
  }
 };


 public CountdownButton(Context context) {
  super(context);
  this.setText(beforeText);
  setOnClickListener(this);
 }

 public CountdownButton(Context context, AttributeSet attrs) {
  super(context, attrs);
  setOnClickListener(this);
 }

 public CountdownButton(Context context, AttributeSet attrs, int defStyleAttr) {
  super(context, attrs, defStyleAttr);
  setOnClickListener(this);
 }

 /**
  * 清除倒計(jì)時(shí)
  */
 private void clearTimer() {
  if (timerTask != null) {
   timerTask.cancel();
   timerTask = null;
  }
  if (timer != null) {
   timer.cancel();
   timer = null;
  }
 }

 /**
  * 設(shè)置倒計(jì)時(shí)時(shí)長(zhǎng)
  *
  * @param lenght 默認(rèn)毫秒
  */
 public void setLenght(long lenght) {
  this.lenght = lenght;
 }

 /**
  * 設(shè)置未點(diǎn)擊時(shí)顯示的文字
  *
  * @param beforeText
  */
 public void setBeforeText(String beforeText) {
  this.beforeText = beforeText;
 }

 /**
  * 設(shè)置未點(diǎn)擊后顯示的文字
  *
  * @param beforeText
  */
 public void setAfterText(String afterText) {
  this.afterText = afterText;
 }

 /**
  * 點(diǎn)擊按鈕后的操作
  *
  * @param v
  */
 @Override
 public void onClick(View v) {
  if (onClickListener != null) {
   onClickListener.onClick(v);
  }
  initTimer();
  this.setText(time / 1000 + afterText);
  this.setEnabled(false);
  timer.schedule(timerTask, 0, 1000);
 }

 /**
  * 初始化時(shí)間
  */
 private void initTimer() {
  time = lenght;
  timer = new Timer();
  timerTask = new TimerTask() {
   @Override
   public void run() {
    handler.sendEmptyMessage(1);
   }
  };
 }

 /**
  * 設(shè)置監(jiān)聽(tīng)按鈕點(diǎn)擊事件
  *
  * @param onclickListener
  */
 @Override
 public void setOnClickListener(OnClickListener onclickListener) {
  if (onclickListener instanceof CountdownButton) {
   super.setOnClickListener(onclickListener);

  } else {
   this.onClickListener = onclickListener;
  }

 }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

盐津县| 马鞍山市| 淮北市| 封丘县| 海阳市| 阳曲县| 普陀区| 土默特右旗| 广宁县| 承德市| 从化市| 丹阳市| 洛南县| 太仓市| 永寿县| 垦利县| 开鲁县| 高清| 凌源市| 禄丰县| 崇明县| 安多县| 西平县| 阳东县| 五河县| 泰安市| 四会市| 江北区| 内江市| 祥云县| 丹巴县| 平原县| 巴马| 牙克石市| 攀枝花市| 红河县| 余江县| 辽阳县| 武强县| 丽江市| 彩票|