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

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

Android 滾動時間選擇的示例代碼

瀏覽:5日期:2022-09-21 13:36:27

效果圖 復制代碼直接用?。。。?/p>

Android 滾動時間選擇的示例代碼

Android 滾動時間選擇的示例代碼

1.導入依賴

implementation ’com.bigkoo:pickerview:2.1.0’

2.三個bean類PickerViewData

public class PickerViewData implements IPickerViewData { private String content; public PickerViewData(String content) { this.content = content; } public void setContent(String content) { this.content = content; } @Override public String getPickerViewText() { return content; }}

ProvinceBean

public class ProvinceBean implements IPickerViewData { private long id; private String name; private String description; private String others; public ProvinceBean(long id,String name,String description,String others){ this.id = id; this.name = name; this.description = description; this.others = others; } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getOthers() { return others; } public void setOthers(String others) { this.others = others; } //這個用來顯示在PickerView上面的字符串,PickerView會通過IPickerViewData獲取getPickerViewText方法顯示出來。 @Override public String getPickerViewText() { return name; }}

TimeBean

public class TimeBean implements IPickerViewData { private String time; public TimeBean(String time) { this.time = time; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } @Override public String getPickerViewText() { return time; }}

3,布局文件activity_main

<RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='match_parent' android:orientation='vertical' > <TextView android:layout_margin='50dp' android: android:text='時間' android:layout_width='match_parent' android:layout_height='50dp'/> <TextView android: android:layout_margin='50dp' android:layout_below='@+id/tvTime' android:text='條件' android:layout_width='match_parent' android:layout_height='50dp'/> <View android: android:visibility='gone' android:background='#e0000000' android:layout_width='fill_parent' android:layout_height='fill_parent'/></RelativeLayout>

4.MainActivity

public class MainActivity extends Activity { private ArrayList<TimeBean> options1Items = new ArrayList<>(); private ArrayList<ArrayList<String>> options2Items = new ArrayList<>(); private ArrayList<ArrayList<ArrayList<IPickerViewData>>> options3Items = new ArrayList<>(); private TextView tvTime, tvOptions; TimePickerView pvTime; OptionsPickerView pvOptions; View vMasker; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vMasker=findViewById(R.id.vMasker); tvTime=(TextView) findViewById(R.id.tvTime); tvOptions=(TextView) findViewById(R.id.tvOptions); //時間選擇器 pvTime = new TimePickerView(this, TimePickerView.Type.MONTH_DAY_HOUR_MIN); //控制時間范圍// Calendar calendar = Calendar.getInstance();// pvTime.setRange(calendar.get(Calendar.YEAR) - 20, calendar.get(Calendar.YEAR));//要在setTime 之前才有效果哦 pvTime.setTime(new Date()); pvTime.setCyclic(false); pvTime.setCancelable(true); //時間選擇后回調 pvTime.setOnTimeSelectListener(new TimePickerView.OnTimeSelectListener() { @Override public void onTimeSelect(Date date) {tvTime.setText(getTime(date)); } }); //彈出時間選擇器 tvTime.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {pvTime.show(); } }); //選項選擇器 pvOptions = new OptionsPickerView(this); //選項1 options1Items.add(new TimeBean('現在')); options1Items.add(new TimeBean('今天')); options1Items.add(new TimeBean('明天')); options1Items.add(new TimeBean('后天')); //選項 1 2 ArrayList<String> options2Items_01=new ArrayList<>(); options2Items_01.add('--'); //22 ArrayList<String> options2Items_02=getTodayHourData(); //32 ArrayList<String> options2Items_03=getHourData(); //32 ArrayList<String> options2Items_04=getHourData(); options2Items.add(options2Items_01); options2Items.add(options2Items_02); options2Items.add(options2Items_03); options2Items.add(options2Items_04); //選項3 ArrayList<ArrayList<IPickerViewData>> options3Items_01 = new ArrayList<>(); ArrayList<ArrayList<IPickerViewData>> options3Items_02 = new ArrayList<>(); ArrayList<ArrayList<IPickerViewData>> options3Items_03 = new ArrayList<>(); ArrayList<ArrayList<IPickerViewData>> options3Items_04 = new ArrayList<>(); ArrayList<IPickerViewData> options3Items_01_01=new ArrayList<>(); options3Items_01_01.add(new PickerViewData('--')); options3Items_01.add(options3Items_01_01); options3Items_02 =getmD2(); options3Items_03 =getmD(); options3Items_04 =getmD(); options3Items.add(options3Items_01); options3Items.add(options3Items_02); options3Items.add(options3Items_03); options3Items.add(options3Items_04); //三級聯動效果 pvOptions.setPicker(options1Items, options2Items, options3Items, true); //設置選擇的三級單位// pwOptions.setLabels('省', '市', '區'); pvOptions.setTitle(' '); pvOptions.setCyclic(false, false, false); //設置默認選中的三級項目 //監聽確定選擇按鈕 pvOptions.setSelectOptions(0, 0, 0); pvOptions.setOnoptionsSelectListener(new OptionsPickerView.OnOptionsSelectListener() { @Override public void onOptionsSelect(int options1, int option2, int options3) {//返回的分別是三個級別的選中位置String tx = options1Items.get(options1).getPickerViewText() + options2Items.get(options1).get(option2) + options3Items.get(options1).get(option2).get(options3).getPickerViewText();tvOptions.setText(tx);vMasker.setVisibility(View.GONE); } }); //點擊彈出選項選擇器 tvOptions.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {pvOptions.show(); } }); } public static String getTime(Date date) { SimpleDateFormat format = new SimpleDateFormat('yyyy-MM-dd HH:mm'); return format.format(date); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if(pvOptions.isShowing()||pvTime.isShowing()){pvOptions.dismiss();pvTime.dismiss();return true; } if(pvTime.isShowing()){pvTime.dismiss();return true; } } return super.onKeyDown(keyCode, event); } /** * 今天 點 */ private ArrayList<String> getTodayHourData(){ int max =currentHour(); if (max<23&&currentMin()>45){ max=max+1; } ArrayList<String> lists=new ArrayList<>(); for (int i=max;i<24;i++){ lists.add(i+'點'); } return lists; } /** * 明天 后天 點 */ private ArrayList<String> getHourData(){ ArrayList<String> lists=new ArrayList<>(); for (int i=0;i<24;i++){ lists.add(i+'點'); } return lists; } /** * 明天 后天 分 */ private ArrayList<IPickerViewData> getMinData(){ ArrayList<IPickerViewData> dataArrayList=new ArrayList<>(); for (int i=0;i<6;i++){ dataArrayList.add(new PickerViewData((i*10)+'分')); } return dataArrayList; } /** * 明天 后天 */ private ArrayList<ArrayList<IPickerViewData>> getmD(){ ArrayList<ArrayList<IPickerViewData>> d=new ArrayList<>(); for (int i=0;i<24;i++){ d.add(getMinData()); } return d; } /** * 明天 后天 2222 */ private ArrayList<ArrayList<IPickerViewData>> getmD2(){ //14 int max =currentHour(); if (currentMin()>45){ max=max+1; } int value =24-max; ArrayList<ArrayList<IPickerViewData>> d=new ArrayList<>(); for (int i=0;i<value;i++){ if (i==0){d.add(getTodyMinData()); }else {d.add(getMinData()); } } return d; } /** * 明天 后天 分2222 */ private ArrayList<IPickerViewData> getTodyMinData(){ int min = currentMin(); int current=0; if (min>35&&min<=45){ current =0; }else if (min>45&&min<=55){ current=1; } else if (min>55){ current=2; }else if (min<=5){ current=2; }else if (min>5&&min<=15){ current=3; }else if (min>15&&min<=25){ current=4; }else if (min>25&&min<=35){ current=5; } int max =currentHour(); if (max>23&& min>35){ current=5; } ArrayList<IPickerViewData> dataArrayList=new ArrayList<>(); for (int i=current;i<6;i++){ dataArrayList.add(new PickerViewData((i*10)+'分')); } return dataArrayList; } private int currentMin(){ Calendar cal = Calendar.getInstance(); return cal.get(Calendar.MINUTE); } private int currentHour(){ Calendar cal = Calendar.getInstance(); return cal.get(Calendar.HOUR_OF_DAY); }}

到此這篇關于Android 滾動時間選擇的示例代碼的文章就介紹到這了,更多相關Android 滾動時間選擇內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
主站蜘蛛池模板: 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 临朐空调移机_空调维修「空调回收」临朐二手空调 | 飞歌臭氧发生器厂家_水处理臭氧发生器_十大臭氧消毒机品牌 | 吹塑加工_大型吹塑加工_滚塑代加工-莱力奇吹塑加工有限公司 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | ALC墙板_ALC轻质隔墙板_隔音防火墙板_轻质隔墙材料-湖北博悦佳 | 保定市泰宏机械制造厂-河北铸件厂-铸造厂-铸件加工-河北大件加工 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 温控器生产厂家-提供温度开关/热保护器定制与批发-惠州市华恺威电子科技有限公司 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 锂电叉车,电动叉车_厂家-山东博峻智能科技有限公司 | 全国冰箱|空调|洗衣机|热水器|燃气灶维修服务平台-百修家电 | 高速混合机_锂电混合机_VC高效混合机-无锡鑫海干燥粉体设备有限公司 | 我爱古诗词_古诗词名句赏析学习平台 | 高压油管,液压接头,液压附件-烟台市正诚液压附件 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 广东教师资格网-广东教师资格证考试网| 广州二手电缆线回收,旧电缆回收,广州铜线回收-广东益福电缆线回收公司 | 万家财经_财经新闻_在线财经资讯网 | 建大仁科-温湿度变送器|温湿度传感器|温湿度记录仪_厂家_价格-山东仁科 | 阻垢剂,反渗透阻垢剂,缓蚀阻垢剂-山东普尼奥水处理科技有限公司 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 密度电子天平-内校-外校电子天平-沈阳龙腾电子有限公司 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 上海诺狮景观规划设计有限公司 | 等离子表面处理机-等离子表面活化机-真空等离子清洗机-深圳市东信高科自动化设备有限公司 | 技德应用| 搬运设备、起重设备、吊装设备—『龙海起重成套设备』 | 注塑_注塑加工_注塑模具_塑胶模具_注塑加工厂家_深圳环科 | 冷藏车-东风吸污车-纯电动环卫车-污水净化车-应急特勤保障车-程力专汽厂家-程力专用汽车股份有限公司销售二十一分公司 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 无锡网站建设-做网站-建网站-网页设计制作-阿凡达建站公司 | 涿州网站建设_网站设计_网站制作_做网站_固安良言多米网络公司 | 智能终端_RTU_dcm_北斗星空自动化科技 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 电动葫芦|手拉葫芦|环链电动葫芦|微型电动葫芦-北京市凌鹰起重机械有限公司 | 标准品网_标准品信息网_【中检计量】 |