尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Android 时间选择器实战:用 Android-PickerView 一站式搞定年月日时分秒与省市区联动
Android 时间选择器实战用 Android-PickerView 一站式搞定年月日时分秒与省市区联动【免费下载链接】Android-PickerViewThis is a picker view for android , support linkage effect, timepicker and optionspicker.时间选择器、省市区三级联动项目地址: https://gitcode.com/gh_mirrors/an/Android-PickerViewAndroid-PickerView 是一款仿 iOS 滚轮效果的开源选择器控件集时间选择器与选项选择器于一体让你彻底摆脱原生DatePickerDialog样式死板、格式固定、配色不搭的尴尬。读完这篇实战文章你就能用几行代码做出任意格式的年月日时分秒选择器以及带联动效果的省市区选择器。痛点开篇你是不是也被选择器折磨过做 App 时选择器的需求五花八门生日要年月日、开会要时分、下单要精确到秒。可原生控件样式千篇一律英文月份看不懂UI 改版换个主题色也完全不跟手。想做个省市区三级联动更是得自己造轮子处理级联数据。Android-PickerView正是为这些场景而生一个库同时覆盖时间选择与选项选择单位显隐、标签文字、颜色字体、范围限制全部可配甚至能整块换掉布局。极速上手三步让选择器弹出来项目已停止在 JCenter 更新官方推荐直接拉取源码以 module 方式引入git clone https://gitcode.com/gh_mirrors/an/Android-PickerView把pickerview、wheelview两个 module 导入你的工程后10 秒就能弹出选择器TimePickerView pvTime new TimePickerBuilder(MainActivity.this, (date, v) - tvTime.setText(getTime(date))) .build(); pvTime.show();OnTimeSelectListener回调直接返回选中的Date配合SimpleDateFormat转成任何想要的字符串格式。看到滚轮滑动的瞬间成就感直接拉满。核心能力拆解一个 Builder 管住所有细节TimePickerBuilder采用链式调用下面这些能力按业务需要随意叠加。能力一显示哪些时间单位一个数组说了算setType接收长度为 6 的布尔数组依次对应年、月、日、时、分、秒// 只显示时分秒 .setType(new boolean[]{false, false, false, true, true, true})生日场景传{true,true,true,false,false,false}预约场景传{false,false,false,true,true,false}改业务需求只是一行代码的事。能力二标签、范围、样式全套可定制配置项作用示例setLabel修改单位标签文字setLabel(Y,M,D,h,m,s)setRangDate限定可选起止时间setRangDate(start, end)setContentTextSize滚轮文字大小setContentTextSize(18)setDividerColor分割线颜色setDividerColor(0xFF24AD9D)setTextColorCenter选中项文字颜色setTextColorCenter(Color.BLACK)setLineSpacingMultiplier滚轮行距倍数setLineSpacingMultiplier(1.2f).setDate(selectedDate) .setRangDate(startDate, endDate) .setDividerColor(0xFF24AD9D) .setContentTextSize(18)配置完这句选择器就是你的品牌色了与 App 整体设计风格浑然一体。能力三农历模式一行开启.setLunarCalendar(true)开启后滚轮直接显示丁酉年 九月 廿七这样的农历日期。官方 demo 里还示范了用 CheckBox 在公历/农历间动态切换甚至会自动调整各列宽度体验相当贴心。能力四内置布局不满意整块换掉.setLayoutRes(R.layout.pickerview_custom_time, v - { v.findViewById(R.id.tv_finish).setOnClickListener(view - { pvCustomTime.returnData(); pvCustomTime.dismiss(); }); })setLayoutRes传入自己的布局配合CustomListener回调可以操作布局中的任意控件。注意自定义布局里必须保留 id 为timepicker或optionspicker的容器及子滚轮控件否则会空指针demo 中的两个自定义 layout 就是现成模板。能力五省市区三级联动选项类需求交给OptionsPickerView支持一/二/三级选择联动与否可自由开关。省市区是它的经典用法完整代码在 demo 的JsonDataActivity中pvOptions new OptionsPickerBuilder(this, (options1, options2, options3, v) - { String tx options1Items.get(options1).getPickerViewText() options2Items.get(options1).get(options2) options3Items.get(options1).get(options2).get(options3); }).build(); pvOptions.setPicker(options1Items, options2Items, options3Items); pvOptions.show();先用 Gson 在工作线程解析assets/province.json再通过setPicker灌入三级数据联动效果立刻呈现。实战场景三个真实业务直接抄场景一生日选择setType只开年月日再用setRangDate把上限限制到今天防止用户选到未来生日让数据从一开始就干净。场景二外卖预约送达时间只留时和分两个滚轮配合isCenterLabel(true)只在中部显示单位界面清爽接近原生交互习惯。场景三收货地址三级联动数据解析放子线程加载完成后再调用show()滑动时通过OnOptionsSelectChangeListener实时拿到各级下标方便做联动回显与后续下单逻辑。避坑指南三个高频翻车点⚠️Calendar 月份从 0 开始。startDate.set(2024, 1, 1)实际是 2 月 1 日月份范围是 0-11正确写法应为set(2024, 0, 1)这是设置时间范围时最经典的坑。⚠️自定义布局别删固定 id。缺少timepicker/optionspicker及其子滚轮控件会直接空指针崩溃改动布局文件前先确认这几个 id 还在。⚠️数据没加载完就弹窗会崩。省市区 JSON 解析是异步的务必等数据准备就绪再show()demo 中用 Handler 消息机制做了控制直接照搬即可。总结与延伸TimePickerBuilder管时间、OptionsPickerView管选项配合setType、setLabel、setRangDate、setLayoutRes、setLunarCalendar这几个核心 API就能覆盖绝大多数选择器业务。建议你 clone 下源码跑一遍 demo核心示例在app/src/main/java/com/bigkoo/pickerviewdemo/MainActivity.java动起手来比读十遍文档都管用。让选择器不再是 App 的减分项现在就动手试试吧【免费下载链接】Android-PickerViewThis is a picker view for android , support linkage effect, timepicker and optionspicker.时间选择器、省市区三级联动项目地址: https://gitcode.com/gh_mirrors/an/Android-PickerView创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

GHelper 使用教程:华硕笔记本轻量控制工具如何接管核心调节

GHelper 使用教程:华硕笔记本轻量控制工具如何接管核心调节

GHelper 使用教程:华硕笔记本轻量控制工具如何接管核心调节 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenboo…

📅 2026/10/2 0:20:13
为什么LFM2.5-1.2B-Thinking-bf16是边缘AI的终极选择:Apple Silicon专属优化解析

为什么LFM2.5-1.2B-Thinking-bf16是边缘AI的终极选择:Apple Silicon专属优化解析

为什么LFM2.5-1.2B-Thinking-bf16是边缘AI的终极选择:Apple Silicon专属优化解析 【免费下载链接】LFM2.5-1.2B-Thinking-bf16 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/LFM2.5-1.2B-Thinking-bf16 LFM2.5-1.2B-Thinking-bf16 是一款由 …

📅 2026/9/26 2:33:23
Chrome DevTools网络请求复制全攻略:从cURL到自动化捕获

Chrome DevTools网络请求复制全攻略:从cURL到自动化捕获

1. 项目概述:从“复制”到“洞察”的桥梁如果你是一名前端开发者、测试工程师,或者任何需要和网页请求打交道的人,那么你一定对 Chrome DevTools 的 Network 面板不陌生。这个面板是我们窥探网页与服务器之间所有“对话”的窗口,从…

📅 2026/9/8 7:52:36
MORE NEWS

更多资讯

📰

sim-use 3分钟上手:observe-act-verify循环让AI验证自己写的移动App

【免费下载链接】sim-use Give your AI agent eyes and hands on iOS Simulator and Android emulator/devices. 项目地址: https://gitcode.com/gh_mirrors/si/sim-use 点击查看 免费下载 sim-use 是一个跨平台 CLI 工具,它为 AI Agent 提供在 iOS 模拟…

📰

智谱刚把 GLM-5.3 搬上 Amazon Bedrock,股价应声涨近 5%:国产大模型出海怎么突然就火了

智谱刚把 GLM-5.3 搬上 Amazon Bedrock,股价应声涨近 5%:国产大模型出海怎么突然就火了 【免费下载链接】GLM-5.3 GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升…

📰

C++手写CSV解析器:从状态机到流式处理实战

1. 从一次数据清洗任务说起:为什么CSV值得单独写一篇文章前阵子帮一个做实验数据分析的朋友处理一批传感器日志,对方甩过来一个压缩包,解压后是几十个后缀为.csv的文件,每个文件大概几万行,列数从十几列到三十几列不等…

📰

Pomotroid 土耳其语本地化实践:基于 Paraglide 的 8 语言架构与新增 locale 全流程

【免费下载链接】pomotroid :tomato: Simple and visually-pleasing Pomodoro timer 项目地址: https://gitcode.com/gh_mirrors/po/pomotroid 点击查看 免费下载 本文以 Pomotroid 新增土耳其语(tr)支持这一真实变更为主线,讲解…

📰

openJiuwen DeepSearch 研究规划提示模板(planner/user.md)深度解析:从 Jinja 渲染到计划生成的全链路实现

人工智能大模型AI AgentRAG深度研究搜索引擎后端代码智能体 【免费下载链接】deepsearch openJiuwen DeepSearch是一款知识增强的深度搜索与研究框架,有业界领先的片段级引用和溯源推理能力,提供精准Agentic搜索与研究能力 项目地址: https:/…

📰

【宠粉赠书】分布式系统性能优化:方法与实践——用 TaoToken 统一 Key 打通压测与调优链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬