Android 省市区三级联动城市选择器 CityPicker 完整集成指南
2026/8/22 13:53:28 网站建设 项目流程

Android 省市区三级联动城市选择器 CityPicker 完整集成指南

【免费下载链接】citypickercitypicker城市选择器,详细的省市区地址信息,支持仿iOS滚轮实现,仿京东样式,一级或者三级列表展示方式。项目地址: https://gitcode.com/gh_mirrors/ci/citypicker

每个 App 几乎都要做收货地址,省市区三级联动地址选择往往是复制粘贴来的,数据源还要自己维护。开源组件 CityPicker 省市区城市选择器把这个环节做成了开箱即用的方案。

这个组件解决什么问题

省市区选择通常要自己管行政数据、自己画滚轮和列表,费时且容易出错。CityPicker 由开发者 crazyandcoder 封装,内置最新省市区行政数据,直接引入即可弹出选择器;最大卖点是四种样式一套库搞定——仿iOS滚轮、仿京东样式、一级城市列表、三级城市列表,还允许你换成自己的数据源。

技术实现与核心能力

  • 纯 Java 实现,基于 Gradle 多模块工程:citypickerview是核心选择器库,app是可运行的样式演示,lib_citydata是配套的数据解析工具。
  • 省市区数据内置在 assets 的china_city_data.json中,随库打包,不依赖网络接口,离线可用。
  • 滚轮(WheelView)为组件内自绘控件,不额外引入第三方 UI 依赖,体积轻、方便混淆。
  • 列表样式内置汉字转拼音逻辑,按首字母排序、侧边栏快速跳字,精度经过优化。

CityPicker 支持哪些选择样式

  • 仿iOS滚轮:底部弹出三列滚轮,可配标题、循环滚动、可见行数、默认选中省市。
  • 仿京东样式:左栏省份列表 + 右栏城市列表,两级页面切换。
  • 一级城市列表:只显示省级列表,适合只选到大区/省份的场景。
  • 三级城市列表:省→市→区逐页跳转,每页带字母索引。
  • 四种样式共用回调接口,返回的省市区对象带名称和行政区划 ID,可直接入库。

如何引入 CityPicker

第一步,在 Project 的build.gradle中添加 jitpack 仓库:

allprojects { repositories { maven { url 'https://jitpack.io' } } }

第二步,在 app 的build.gradle中添加依赖:

implementation 'com.github.crazyandcoder:citypicker:6.0.2'

CityPicker 使用示例代码

以仿iOS滚轮为例,配置、监听、显示三步完成:

CityConfig config = new CityConfig.Builder() .title("选择城市") .province("江苏").city("常州").district("新北区") .build(); CityPickerView view = new CityPickerView(); view.setConfig(config); view.setOnCityItemClickListener(new OnCityItemClickListener() { @Override public void onSelected(ProvinceBean p, CityBean c, DistrictBean d) { // 拿到省市区名称与行政区划ID } }); view.showCityPicker();

字体大小、颜色、标题背景、自定义 item 布局等均可通过 Builder 链式配置,不用改源码。

适用场景:哪里需要省市区选择

  • 电商订单页:用户填写收货地址时选省市区。
  • 本地生活服务:外卖、家政、同城配送按区域过滤和定价。
  • 社交与简历类应用:个人资料中填写城市所在地。
  • 保险与物流下单:按用户地址计算费率或运费。
  • 数据统计:采集用户地域分布,用于运营分析。

数据更新、文档与社区支持

组件会随版本更新行政数据(6.0.2 已使用最新省市区数据并优化汉字转拼音逻辑),并支持港澳台数据开关。官方 wiki 提供每种样式的接入教程和代码混淆方案,app模块本身就是完整示例工程。项目基于 Apache 2.0 协议开源,作者维护专属 QQ 群(417846442)答疑。

省市区选择这块,交给 CityPicker 就好。

【免费下载链接】citypickercitypicker城市选择器,详细的省市区地址信息,支持仿iOS滚轮实现,仿京东样式,一级或者三级列表展示方式。项目地址: https://gitcode.com/gh_mirrors/ci/citypicker

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询