Android简单计时器的实现

来源:互联网 发布:php node.js共存 编辑:程序博客网 时间:2024/05/29 07:02

<span style="font-family: Arial, Helvetica, sans-serif;"></span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 14px;">今天在做一个获取短信验证码的功能时,要求用户点击了一次获取验证码后要在控件上显示一个时间,即在这个时间内不能再去点击该控件(就是使其在这个时间内失焦)。于是乎上网看了下别人的实现,各种自定义控件看得我眼花缭乱,一个小小的功能难道要搞得那么复杂(我还没具体研究网上的具体功能)?我仔细研究发现在android.os包下有个抽象类CountDownTimer,这就是为我们计时而产生的吧?先上效果图,然后再上代码。</span>

计时开始前


开始计时


计时结束

看了简单效果,我们来看下代码更简单:

首先布局文件就不说了,眯着眼睛都能看出这是一button。

接着就是activity文件了,简单如下:

public class MainActivity extends Activity {

    private Button testTime;       @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        testTime = (Button) findViewById(R.id.btn_main_time);        testTime.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //time.start();                new CountDownTimer(60000,1000){                    @Override                    public void onTick(long l) {                        testTime.setClickable(false);                        testTime.setText(l / 1000 + "秒后重新发送");                        testTime.setBackgroundColor(Color.RED);                    }                    @Override                    public void onFinish() {                        testTime.setClickable(true);                        testTime.setText("重新发送");                    }                }.start();            }        });    }   }


确实有点简单,写下来主要是备忘的,如果有更好的方法欢迎大家推荐!

最后吐槽下,csdn的编辑框用户体验感真不好,博客园的好多了!

0 0
原创粉丝点击