倒计时获取验证码

演示:

代码:

RegisterActivity.java

import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;

import com.jialianjia.bzw.BaseActivity;
import com.jialianjia.bzw.R;
import com.jialianjia.bzw.utils.CountDownButtonHelper;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;

/**
 * 注册功能
 * Created by GXS on 2016/4/21.
 */
public class RegisterActivity extends BaseActivity{

    private Button btn_yzm;

    @ViewInject(R.id.toolbar)
    Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        ViewUtils.inject(this);
        initToolBar(toolbar,"账号注册",true);

        // 获取验证码--start
        btn_yzm = (Button) findViewById(R.id.btn_yzm);
        btn_yzm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CountDownButtonHelper helper = new CountDownButtonHelper(btn_yzm,"倒计时",60,1);

                helper.setOnFinishListener(new CountDownButtonHelper.OnFinishListener() {
                    @Override
                    public void finish() {
                       // Toast.makeText(RegisterActivity.this,"倒计时结束",Toast.LENGTH_SHORT).show();
                        btn_yzm.setText("再次获取");
                    }
                });
                helper.start();
            }
        }); // 获取验证码--end
    }
}

布局文件:

activity_register.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:theme="@style/AppTheme.AppBarOverlay"
        android:fitsSystemWindows="true" />

    <LinearLayout
        android:layout_height="50dp"
        android:layout_width="match_parent"
        android:layout_marginTop="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:background="@color/white"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_phone"
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:text="@string/tv_info_phone"
            android:layout_margin="8dp"
            android:textColor="@color/black"
            android:layout_gravity="center_vertical"
            android:textSize="17sp"/>

        <EditText
            android:id="@+id/et_phone"
            android:layout_width="190dp"
            android:layout_height="35dp"
            android:layout_toRightOf="@id/tv_phone"
            android:background="@null"
            android:hint="@string/edt_phone_tips"
            android:maxLength="20"
            android:layout_gravity="center_vertical"
            android:singleLine="true"
            android:textSize="16sp" />

        <View
            android:layout_width="2px"
            android:layout_height="50dp"
            android:background="@color/driverline" />

        <Button
            android:id="@+id/btn_yzm"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_marginLeft="3dp"
            android:layout_gravity="center"
            android:background="@color/white"
            android:text="@string/btn_yzm_text"/>

    </LinearLayout>

    <View
        android:id="@+id/view_line"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_below="@id/tv_phone"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@color/driverline" />

    <LinearLayout
        android:layout_height="50dp"
        android:layout_width="match_parent"
        android:layout_marginTop="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:background="@color/white"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_yzm"
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:text="@string/tv_yzm_text"
            android:layout_margin="8dp"
            android:textColor="@color/black"
            android:layout_gravity="center_vertical"
            android:textSize="17sp"/>

        <EditText
            android:id="@+id/et_yzm"
            android:layout_width="190dp"
            android:layout_height="35dp"
            android:layout_toRightOf="@id/tv_phone"
            android:background="@null"
            android:hint="@string/edt_yzm_tips"
            android:maxLength="20"
            android:layout_gravity="center_vertical"
            android:singleLine="true"
            android:textSize="16sp" />

    </LinearLayout>

    <View
        android:id="@+id/view_line1"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_below="@id/tv_phone"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@color/driverline" />

    <LinearLayout
        android:layout_height="50dp"
        android:layout_width="match_parent"
        android:layout_marginTop="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:background="@color/white"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_password"
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:text="@string/tv_password_text"
            android:layout_margin="8dp"
            android:textColor="@color/black"
            android:layout_gravity="center_vertical"
            android:textSize="17sp"/>

        <EditText
            android:id="@+id/et_password"
            android:layout_width="190dp"
            android:layout_height="35dp"
            android:layout_toRightOf="@id/tv_phone"
            android:background="@null"
            android:hint="@string/edt_password_text"
            android:maxLength="20"
            android:layout_gravity="center_vertical"
            android:singleLine="true"
            android:textSize="16sp" />

    </LinearLayout>

    <View
        android:id="@+id/view_line2"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_below="@id/tv_phone"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@color/driverline" />

    <Button
        android:id="@+id/btn_regist"
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:layout_marginTop="30dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@drawable/btn_select"
        android:gravity="center"
        android:padding="5dp"
        android:text="@string/btn_regist_text"
        android:textColor="@color/white"
        android:textSize="16sp" />

</LinearLayout>
时间: 2024-12-11 15:58:07

倒计时获取验证码的相关文章

javascript 倒计时获取验证码

var wait=60;function reSendCode(id) { var obj = $("#"+id); if (wait == 0) { obj.attr("disabled",false); $('#getcode').removeClass('no-disable').addClass("get-code").attr('disabled',false).val("免费获取验证码"); wait = 60;

clips 前端 js 倒计时 获取验证码的按钮

1 <a href="javascript:void(0);" onclick="get_captcha()" class="btn btn-default btn6" id="for_captcha" >获取验证码</a> 2 3 <script type="text/javascript"> 4 5 var url="/get-verify-code?pho

倒计时获取验证码、事件代码

-(void)sendSMS{        if(isPhone == YES){          isPhone = NO;        __block int timeout=60; //倒计时时间        dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);        dispatch_source_t _timer = dispatch_source_

iOS项目中获取验证码倒计时及闪烁问题解决方案

大家在做验证码的时候一般都会用到倒计时,基本上大家实现的方式都差不多,先贴出一些代码来.. -(void)startTime{ __block int timeout= 59; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE

Andorid实现点击获取验证码倒计时效果

这篇文章主要介绍了Andorid实现点击获取验证码倒计时效果,这种效果大家经常遇到,想知道如何实现的,请阅读本文 我们在开发中经常用到倒计时的功能,比如发送验证码后,倒计时60s再进行验证码的获取,为了方便以后使用,这里做个记录,讲讲倒计时器的实现. 1.先进行倒计时工具类的封装 1 public class CountDownTimerUtils extends CountDownTimer { 2 private TextView mTextView; 3 4 /** 5 * @param

获取验证码倒计时

<!doctype html><html><head> <meta charset="utf-8"> <title>广告主注册</title> <link href="__CSS__/index.css" rel="stylesheet" /> <script src="__JS__/jquery-1.9.1.min.js"><

Android实战简易教程-第四十一枪(显示倒计时的Button-适用于获取验证码)

近期在做获取验证码的功能.考虑到优良的用户体验,决定制作一个拥有倒计时提示的Button按钮,在网上查了一些资料,非常是简单的就能实现.我写了一个小Demo,大家能够应用到自己的项目中. 一.代码 1.activity_main.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/to

Angular.js 使用获取验证码按钮实现-倒计时

获取验证码界面效果如图: 需要实现以下逻辑 按钮不可选 --输入电话号码,按钮可选 --点击获取,进入倒计时,按钮不可选 --倒计时结束,回到初识状态 核心代码: var cd = 60; var toDo = function() { cd--; $scope.countDown = "重新获取 " + cd; }; $interval(toDo, 1000, 60); 完整代码: html: <form name="form" class="fo

前端学习——ionic/AngularJs——获取验证码倒计时按钮

 按钮功能为:点击"获取验证码"--按钮不可用-设置倒计时-60秒后重新获取. 代码借鉴于:http://plnkr.co/edit/Swj82MpJSix3a47jZRHP?p=preview 主要实现原理:点击后,设置一个$interval,每一秒更改一次剩余时间,并依赖Angular数据绑定实时显示在页面中.设置一个$timeout,60秒后将按钮初始化到可用状态. 实现代码: (1)js代码,设置成一个directive以便多次调用. angular.module('winwi