直播带货平台开发,倒计时验证两种常用方式
直播带货平台开发,倒计时验证两种常用方式
1、第一种方式:Timer
1 | /**<br> * Description:自定义Timer<br> * <p><br> * Created by Mjj on 2016/12/4.<br> */ <br> public class TimeCount extends CountDownTimer {<br> private Button button;<br> //参数依次为总时长,和计时的时间间隔<br> public TimeCount(Button button, long millisInFuture, long countDownInterval) {<br> super(millisInFuture, countDownInterval);<br> this.button = button;<br> }<br> //计时过程显示<br> @Override<br> public void onTick(long millisUntilFinished) {<br> String time = "(" + millisUntilFinished / 1000 + ")秒";<br> setButtonInfo(time, "#c1c1c1", false);<br> }<br> //计时完毕时触发<br> @Override<br> public void onFinish() {<br> setButtonInfo("重新获取", "#f95353", true);<br> }<br> /**<br> * 验证按钮在点击前后相关设置<br> *<br> * @param content 要显示的内容<br> * @param color 颜色值<br> * @param isClick 是否可点击<br> */<br> private void setButtonInfo(String content, String color, boolean isClick) {<br> button.setText(content);<br> button.setBackgroundColor(Color.parseColor(color));<br> button.setClickable(isClick);<br> }<br>} |
说明:根据自己的需求,在这里修改背景颜色和不同状态显示文字即可,在需要监听的按钮下直接调用new TimerCount(xxx,xxx,xxx).start()即可。
2、第二种方式:Handler
1 | /**<br> * 第二种方式:使用Handler<br> * <p><br> * 静态内部类:避免内存泄漏<br> */ <br> private static class MyHandler extends Handler {<br> private final WeakReference<MainActivity> weakReference;<br> public MyHandler(MainActivity activity) {<br> weakReference = new WeakReference<MainActivity>(activity);<br> }<br> @Override<br> public void handleMessage(Message msg) {<br> super.handleMessage(msg);<br> MainActivity activity = weakReference.get();<br> if (activity != null) {<br> switch (msg.what) {<br> case 0:<br> if (msg.arg1 == 0) {<br> btn2.setText( "重新获取" );<br> btn2.setBackgroundColor(Color.parseColor( "#f95353" ));<br> btn2.setClickable( true );<br> } else {<br> btn2.setText( "(" + msg.arg1 + ")秒" );<br> btn2.setBackgroundColor(Color.parseColor( "#c1c1c1" ));<br> btn2.setClickable( false );<br> }<br> break ;<br> }<br> }<br> }<br> }<br> /**<br> * 监听按钮下直接调用即可<br> */ <br> private void sendMessageClick() {<br> new Thread( new Runnable() {<br> @Override<br> public void run() {<br> for ( int i = 59; i >= 0; i--) {<br> Message msg = myHandler.obtainMessage();<br> msg.arg1 = i;<br> myHandler.sendMessage(msg);<br> try {<br> Thread.sleep(1000);<br> } catch (InterruptedException e) {<br> e.printStackTrace();<br> }<br> }<br> }<br> }).start();<br> } |
说明:此种方式采用的handler实时接收消息来设置Button的状态,对于消息的发送用的是sendMessage声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责方式,也可以使用post方式。
以上就是直播带货平台开发,倒计时验证两种常用方式, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现