• Android CountDownTimer 类实现倒计时


    本文用 Android 中的 CountDownTimer 类实现倒计时功能,类似输入手机号获得验证码。界面如下所示:

    1. 点击 “开始计时” 按钮后开始进行倒计时,

    2. 倒计时过程:

    3. 时间结束后按钮变为 “重新验证”,点击后重新开始计时。

    功能很简单,Java 代码如下:

    public class MainActivity extends Activity {
    
        private TimeCount time;
        private Button checking;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            time = new TimeCount(60000, 1000);// 创建CountDownTimer对象(设置时间为60秒)
            checking = (Button) findViewById(R.id.button1);
            checking.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    time.start();// 开始计时
                }
    
            });
        }
        
        /**
         * 倒计时内部类
         */
        class TimeCount extends CountDownTimer {
            
            public TimeCount(long millisInFuture, long countDownInterval) {
                super(millisInFuture, countDownInterval);// 参数:总时长,计时间隔
            }
            
            @Override
            public void onFinish() {// 计时完毕时触发
                checking.setText("重新验证");
                checking.setClickable(true);
            }
        
            @Override
            public void onTick(long millisUntilFinished){// 计时过程显示
                checking.setClickable(false);
                checking.setText(millisUntilFinished /1000 + "秒");
            }
        }
    }

    布局代码:

    <LinearLayout 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="com.example.testandroid.MainActivity" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/phone_number" />
        
        <EditText 
            android:hint="@string/input_number"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            />
        
        <Button
            android:id="@+id/button1" 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/begin"
            />
    
    </LinearLayout>

    主要来自:http://www.cnblogs.com/-cyb/archive/2011/12/18/Android_CountDownTimer.html,本人稍加整理。

  • 相关阅读:
    js 剪切板应用clipboardData
    正则表达式的与或非
    自定义类型转换器
    struts2类库下载
    通过ajax提交form表单
    面试官:为什么Mysql中Innodb的索引结构采取B+树?
    代码生成器:IDEA 强大的 Live Templates
    深入理解JVM,7种垃圾收集器,看完我跪了
    你能说出多线程中sleep、yield、join的用法及sleep与wait区别?
    Java8中一个极其强悍的新特性,很多人没用过(非常实用)
  • 原文地址:https://www.cnblogs.com/jaxer/p/4576504.html
Copyright © 2020-2023  润新知