电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android 實現列表倒計時功能

瀏覽:7日期:2022-09-26 11:42:00

單個計時器,然后遍歷數據 刷新條目;

Android 實現列表倒計時功能

兩種實現方式:1、Handler輪詢; 2、子線程睡眠(時間到后 移除列表中的條目會有問題);

代碼很簡單,沒有任何難度,列表使用 RecyclerView+BaseRecyclerViewAdapterHelper實現;

implementation ’androidx.recyclerview:recyclerview:1.1.0’ implementation ’com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.1’ public class MainActivity extends AppCompatActivity { private RecyclerView rv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rv = findViewById(R.id.rv); initView(); initData(); findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { quickAdapter.addData(0,new TimeBean('附加商品、離活動結束還剩:' , 99)); rv.scrollToPosition(0); } }); } private QuickAdapter quickAdapter; private void initView() { quickAdapter = new QuickAdapter(R.layout.item); rv.setLayoutManager(new LinearLayoutManager(this)); rv.setAdapter(quickAdapter); rv.setItemAnimator(null); Countdown(); } private void initData() { List<TimeBean> datas = new ArrayList<>(); for (int i = 1; i < 10; i++) { datas.add(new TimeBean('商品' + i + '、離活動結束還剩:', (i + 5) * i)); } quickAdapter.setNewData(datas); } private class QuickAdapter extends BaseQuickAdapter<TimeBean, BaseViewHolder> { public QuickAdapter(int layoutResId) { super(layoutResId); } @Override protected void convert(BaseViewHolder vh, TimeBean datas) { vh.setText(R.id.tv, datas.getStr() + ''); vh.setText(R.id.tv2, datas.getTime() + 's'); } } private Handler mHandler = new Handler(); private Runnable runnable; private void Countdown() { runnable = new Runnable() { @Override public void run() { for (int i = 0; i < quickAdapter.getData().size(); i++) { TimeBean bean = quickAdapter.getData().get(i); if (bean.getTime() > 0) { bean.setTime(bean.getTime() - 1); quickAdapter.setData(i, bean); } else { quickAdapter.remove(i); } } mHandler.postDelayed(runnable, 1000L); } }; mHandler.postDelayed(runnable, 1000L); } private void Countdown2() { new Thread(new Runnable() { @Override public void run() { while (true){ SystemClock.sleep(1000L); for (int i = 0; i < quickAdapter.getData().size(); i++) { final TimeBean bean = quickAdapter.getData().get(i); final int finalI = i; if (bean.getTime() > 0) { bean.setTime(bean.getTime() - 1); runOnUiThread(new Runnable() { @Override public void run() { quickAdapter.setData(finalI, bean); } }); } else { // 當時間是0時 移除條目(子線程加睡眠模式移除條目有問題,原因時數據源未更新) runOnUiThread(new Runnable() { @Override public void run() { quickAdapter.remove(finalI); } }); } } } } }).start(); } @Override protected void onDestroy() { super.onDestroy(); mHandler.removeCallbacks(runnable); mHandler.removeCallbacksAndMessages(null); mHandler = null; }public class TimeBean { public TimeBean(String str, int time) { this.str = str; this.time = time; } private String str; private int time;}

Get 、 Set方法就不寫了;

布局文件:

<?xml version='1.0' encoding='utf-8'?><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' android:orientation='vertical' tools:context='.MainActivity'> <Button android:layout_width='match_parent' android:layout_height='wrap_content' android: android:text='ADD' /> <androidx.recyclerview.widget.RecyclerView android: android:layout_width='match_parent' android:layout_height='match_parent'></androidx.recyclerview.widget.RecyclerView></LinearLayout>//下面是item<?xml version='1.0' encoding='utf-8'?><LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' xmlns:tools='http://schemas.android.com/tools' android:orientation='horizontal' android:paddingBottom='@dimen/dp_10' android:layout_height='60dp'> <TextView android:background='#33fb1212' android: tools:text='你好啊' android:gravity='center_vertical' android:textSize='17dp' android:paddingLeft='15dp' android:textColor='#333' android:layout_width='0dp' android:layout_weight='2' android:layout_height='match_parent' /> <TextView android:background='#33fb1212' android: tools:text='0s' android:gravity='center_vertical' android:textSize='17dp' android:paddingLeft='15dp' android:textColor='#333' android:layout_width='0dp' android:layout_weight='1' android:layout_height='match_parent' /></LinearLayout>

總結

到此這篇關于Android 實現列表倒計時功能的文章就介紹到這了,更多相關android 列表倒計時內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
主站蜘蛛池模板: 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 掺铥光纤放大器-C/L波段光纤放大器-小信号光纤放大器-合肥脉锐光电技术有限公司 | 缠绕机|缠绕膜包装机|缠绕包装机-上海晏陵智能设备有限公司 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 螺旋丝杆升降机-SWL蜗轮-滚珠丝杆升降机厂家-山东明泰传动机械有限公司 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 噪声治理公司-噪音治理专业隔音降噪公司 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 传爱自考网_传爱自学考试网| 挨踢网-大家的导航!| 氧化锆纤维_1800度高温退火炉_1800度高温烧结炉-南京理工宇龙新材料股份有限公司 | 样品瓶(色谱样品瓶)百科-浙江哈迈科技有限公司 | 火锅底料批发-串串香技术培训[川禾川调官网] | 无刷电机_直流无刷电机_行星减速机-佛山市藤尺机电设备有限公司 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 防爆型气象站_农业气象站_校园气象站_农业四情监测系统「山东万象环境科技有限公司」 | 成都装修公司-成都装修设计公司推荐-成都朗煜装饰公司 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 偏心半球阀-电动偏心半球阀-调流调压阀-旋球阀-上欧阀门有限公司 | 高柔性拖链电缆-聚氨酯卷筒电缆-柔性屏蔽电缆厂家-玖泰电缆 | 陕西视频监控,智能安防监控,安防系统-西安鑫安5A安防工程公司 | 代理记账_公司起名核名_公司注册_工商注册-睿婕实业有限公司 | 北钻固控设备|石油钻采设备-石油固控设备厂家 | 医用酒精_84消毒液_碘伏消毒液等医用消毒液-漓峰消毒官网 | 定制异形重型钢格栅板/钢格板_定做踏步板/排水沟盖板_钢格栅板批发厂家-河北圣墨金属制品有限公司 | 动力配电箱-不锈钢配电箱-高压开关柜-重庆宇轩机电设备有限公司 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | 硬齿面减速机[型号全],ZQ减速机-淄博久增机械 | 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 山东齐鲁漆业有限公司【官网】-工业漆专业生产厂家 | 压装机-卧式轴承轮轴数控伺服压装机厂家[铭泽机械] | 青岛空压机,青岛空压机维修/保养,青岛空压机销售/出租公司,青岛空压机厂家电话 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | PAS糖原染色-CBA流式多因子-明胶酶谱MMP-上海研谨生物科技有限公司 | 山东臭氧发生器,臭氧发生器厂家-山东瑞华环保设备 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟 | 哈尔滨京科脑康神经内科医院-哈尔滨治疗头痛医院-哈尔滨治疗癫痫康复医院 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 |