• 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,本人稍加整理。

  • 相关阅读:
    欢迎使用CSDN-markdown编辑器(这个只能看到一次保存一下)
    从Paxos到Zookeeper 分布式一致性原理与实践读书心得
    用java以正确的姿势刷CSP
    注意当cin.getline、和cin 合用的时候
    C++ 虚基类的定义、功能、规定
    python核心高级学习总结5--------python实现线程
    python核心高级学习总结4-------python实现进程通信
    linux下的bash shell
    多线程
    进程
  • 原文地址:https://www.cnblogs.com/jaxer/p/4576504.html
Copyright © 2020-2023  润新知