zoukankan      html  css  js  c++  java
  • 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,本人稍加整理。

  • 相关阅读:
    nginx重启命令
    Java中Vector笔记
    JAVA中字符串比较equals()和equalsIgnoreCase()的区别
    HashMap和TreeMap的常用排序方法
    Logger用法
    HashMap和Hashtable的区别
    class.getDeclaredFields()与class.getFields()
    java中 文件压缩处理
    Java远程执行Shell命令
    python 学习笔记 redis操作
  • 原文地址:https://www.cnblogs.com/jaxer/p/4576504.html
Copyright © 2011-2022 走看看