原来倒计时功能还能这么实现,涨知识了呀?

本文介绍了如何通过XUI框架配置和创建一个5秒倒计时功能的Button,包括配置XUI环境、编写XML布局以及获取并操作Button。重点讲解了如何利用CountDownButton和CountDownButtonHelper简化计时过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然大家倒计时功能可以用handler等多线程功能来完成,但未免有点繁琐,所有今天的功能可以简化大家的代码,实现你所需要的功能。

如果不知道怎么配置XUI框架的,可以看我一篇博客配置XUI框架
过程还算详细,如果有什么问题可以问我。还是一样的,建议测试的时候自己先新建一个页面,或者项目,避免发生其他因素而导致实现结果不了。

首先看一下效果吧,因为缩短时间,所有设置为5s:
在这里插入图片描述

第一步:配置XUI框架。

配置环境的博客在配置XUI框架,这里就不细说了,不会可以去看一下,过程还算详细,不懂可以问我,我们一起讨论。

配置完成后我们进行第二步

第二步:编写倒计时Buton的xml页面。

代码如下:

 <com.xuexiang.xui.widget.button.CountDownButton
        android:id="@+id/bt_countdown4"
        style="@style/Button.Blue"
        android:layout_marginStart="107dp"
        android:layout_marginTop="188dp"
        android:text="获取验证码"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

代码解析:

在这里插入图片描述
如果你想了解更多属性,可以看XUI框架之Button,下面是属性截图:
在这里插入图片描述

第三步:获取Button的值。

虽然上面我们可以实现Button的特效功能,但是只有皮,没有肉也是没有什么用的。例如我们获取验证码,有时间的话就说一下怎么用mob平台获取验证码。
代码如下:

import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.xuexiang.xui.utils.CountDownButtonHelper;
import com.xuexiang.xui.widget.button.CountDownButton;

public class Main2Activity extends AppCompatActivity {
    private CountDownButton button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        button=findViewById(R.id.bt_countdown4);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(Main2Activity.this,button.getText().toString(), Toast.LENGTH_SHORT).show();
                final CountDownButtonHelper countDownButtonHelper=new CountDownButtonHelper(button,60,10);
              //CountDownButtonHelper的三个属性  需要显示倒计时的Button,countDownTime 需要进行倒计时的最大值,单位是秒。 interval     time获取倒计时倒计时的间隔,单位是秒
                countDownButtonHelper.start();   //开始倒计时
                countDownButtonHelper.setOnCountDownListener(new CountDownButtonHelper.OnCountDownListener() {
                    @Override
                    public void onCountDown(int time) {
                        Toast.makeText(Main2Activity.this,button.getText().toString(),Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onFinished() {
                        countDownButtonHelper.cancel();            //取消倒计时
                        countDownButtonHelper.recycle();           //资源回收
                        button.setText("重试");                     //倒计时结束后设置为重置
                        Toast.makeText(Main2Activity.this,"finish",Toast.LENGTH_SHORT).show();
                    }
                });
            }
        });
    }
}

代码还是比较简单,如果不懂的话,可以按住ctrl键进入调用代码所在页面,XUI的作者在里面有详细的解析。

更多关于XUI框架的知识:
XUI框架实现自带的tablayout(TabBar指示器)+viewpage实现页面切换?
XUI框架实现比原生框架更好看并且功能更齐全的EditText框?,以及如何获取EditText的值?
XUI框架之FlowTagLayout流标签的使用,实现原生android没有的功能?
持续更新中。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值