news 2026/8/22 14:53:21

CityPicker城市选择器:快速搭建Android省市区地址选择组件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CityPicker城市选择器:快速搭建Android省市区地址选择组件

CityPicker城市选择器:快速搭建Android省市区地址选择组件

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

CityPicker是一款面向Android应用的开源城市选择器组件,内置省市区行政数据,支持滚轮、京东样式、城市列表等多种展示形式。接入后无需再自行整理地址数据或手写三级联动逻辑,适合需要收货地址、定位选区等页面的新手开发者。

什么时候需要现成的城市选择组件

开发Android应用时,收货地址填写、门店所在城市、个人资料所在地这类页面几乎都会用到省市区选择。自己实现通常会遇到两个麻烦:

  • 行政区域数据不好找,且要自己整理成省、市、区对应的结构;
  • 三级联动、滚动、默认值回显等交互逻辑要反复写,项目之间只能复制粘贴。

如果你不需要自己维护地址接口,只想要一个"拿来就能用"的选择界面,CityPicker可以帮你减少这部分重复工作。

CityPicker能帮你做什么

  • 多种展示样式:仿iOS滚轮、仿京东界面、仅显示城市的一级列表、省市区三级列表,可按页面形态挑选;
  • 数据开箱即用:仓库assets目录下已内置全国省市区数据(china_city_data.json),引用后直接加载,不用另配数据源;
  • 属性可定制:标题、默认省市、滚轮是否循环滚动、每列可见项数、字体颜色等,都可以通过构建器调整;
  • 支持自定义数据:业务只涉及部分城市时,可用自己的城市数据替代内置数据源;
  • 上手成本低:滚轮样式下,初始化、配置、弹出选择器大约只需几行代码。

CityPicker怎么引入

在Project级别的build.gradle中先添加jitpack仓库:

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

再在App模块的build.gradle中添加依赖:

dependencies { implementation 'com.github.crazyandcoder:citypicker:6.0.2' }

如果本地拉取仓库源码,可以使用镜像地址:

git clone https://gitcode.com/gh_mirrors/ci/citypicker

三步弹出城市滚轮

以最常用的仿iOS滚轮为例,核心流程只有三步:初始化、配置、弹出。

CityPickerView pickerView = new CityPickerView(); pickView.init(this); // 需在Activity中提前调用 CityConfig config = new CityConfig.Builder() .title("选择城市") .province("江苏").city("常州").district("新北区") .provinceCyclic(true).cityCyclic(true).districtCyclic(true) .build(); pickView.setConfig(config); pickView.setOnCityItemClickListener(new OnCityItemClickListener() { @Override public void onSelected(ProvinceBean province, CityBean city, DistrictBean district) { // 在这里拿到省、市、区的名称和编码 } @Override public void onCancel() {} }); pickView.showCityPicker();

选中的省份、城市、区县会以ProvinceBean、CityBean、DistrictBean三个对象回调给你,其中包含名称和行政区划编码,可直接用于后续提交表单。

自定义与使用注意事项

  • 调整层级:滚轮可通过setCityWheelType切换只显示省、省加市或完整三级,不同页面按需选择;
  • 换用自有数据:仿iOS样式支持传入自定义数据源,适合只展示部分城市的场景,仓库中的CityPickerCustomeDataActivity可作参考;
  • 数据时效:当前内置数据基于2018年的全国行政区划,若你关注的地区有区划调整,建议先核对再使用,或切换到自定义数据方案;
  • 混淆配置:正式打包前请补充ProGuard保留规则,具体条目可在仓库README中查看;
  • 权限与兼容:组件本身不申请定位权限,纯UI选择;遇到编译或运行问题,先对照官方文档排查更省事。

接下来可以看什么

项目采用Apache 2.0许可,可自由用于商业项目。仓库里的app模块是完整示例,五种样式各对应一个Activity,直接运行即可看到每种效果;更多API细节和更新记录建议参考仓库README及作者的官方文档,社区QQ群号(417846442)也写在README中,遇到问题可以在群里交流。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 14:47:42

135、洞察驱动的实战标题——色调映射的“审美偏差“——日系/欧系/国产手机的影调差异来源,从直方图塑形到局部对比度控制的调参心法

135、洞察驱动的实战标题——色调映射的"审美偏差"——日系/欧系/国产手机的影调差异来源,从直方图塑形到局部对比度控制的调参心法 上周三晚上十一点,我盯着两台旗舰机的同场景夜景样张,差点把咖啡泼在键盘上。一台是日系某大厂,一台是欧系某老牌,同一颗IMX传…

作者头像 李华