一、介绍
Android-PickerView是一款仿iOS的PickerView控件,并封装了时间选择和选项选择这两种选择器,详细特性如下:

WheelView —— 基础控件
带有3D圆弧效果。
支持文字、颜色、大小设置。
支持背景颜色设置。
支持item的分隔线设置。
支持item间距设置。
支持设置是否循环。
OptionsPickerView —— 选项选择器
支持一、二、三级联动数据。
支持一、二、三级不联动数据。
支持自定义布局。
支持自定义标题栏。
支持“省,市,区”等选项的单位(label)显示、隐藏和自定义。
支持dialog 模式显示。
支持自定义设置容器。
TimePickerView —— 时间选择器
支持选择年、月、日的范围。
支持年月日时分秒显示。
支持设置当前默认时间。
支持自定义布局。
支持自定义标题栏。
支持“年,月,日,时,分,秒”等选项的单位(label)显示、隐藏和自定义。
支持dialog 模式显示。
支持自定义设置容器。
其中,WheelView 可在XML布局中直接引用:

<com.bigkoo.pickerview.lib.WheelView
android:id="@+id/wv_options"
android:layout_width=“match_parent”
android:layout_height=“wrap_content” />

TimePickerView —— 时间选择器,支持年月日时分,年月日,年月,时分等格式 ,效果如下:

OptionsPickerView —— 选项选择器,支持一,二,三级选项选择,并且可以设置是否联动 ,效果如下:

二、如何使用
1、导包
implementation ‘com.contrarywind:Android-PickerView:4.1.8’

2、时间选择器

TimePickerView pvTime = new TimePickerBuilder(DatePickActivity.this, new OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {
SimpleDateFormat sdf = new SimpleDateFormat();
String aa=sdf.format(date);
tv1.setText(aa);

}

}).build();
pvTime.show();

3、三级联动

1.获得数据
本例中数据从assets文件中获取json
2.解析数据
本例中使用Gson
数据存储
private List options1Items = new ArrayList<>();
private ArrayList<ArrayList> options2Items = new ArrayList<>();
private ArrayList<ArrayList<ArrayList>> options3Items = new ArrayList<>();

数据解析
private void initJsonData() {//解析数据
String JsonData = new GetJsonDataUtil().getJson(this, “province.json”);//获取assets目录下的json文件数据
ArrayList jsonBean = parseData(JsonData);//用Gson 转成实体

/*** 添加省份数据** 注意:如果是添加的JavaBean实体,则实体类需要实现 IPickerViewData 接口,* PickerView会通过getPickerViewText方法获取字符串显示出来。*/
options1Items = jsonBean;
for (int i = 0; i < jsonBean.size(); i++) {//遍历省份ArrayList<String> cityList = new ArrayList<>();//该省的城市列表(第二级)ArrayList<ArrayList<String>> province_AreaList = new ArrayList<>();//该省的所有地区列表(第三极)for (int c = 0; c < jsonBean.get(i).getCityList().size(); c++) {//遍历该省份的所有城市String cityName = jsonBean.get(i).getCityList().get(c).getName();cityList.add(cityName);//添加城市ArrayList<String> city_AreaList = new ArrayList<>();//该城市的所有地区列表//如果无地区数据,建议添加空字符串,防止数据为null 导致三个选项长度不匹配造成崩溃/*if (jsonBean.get(i).getCityList().get(c).getArea() == null|| jsonBean.get(i).getCityList().get(c).getArea().size() == 0) {city_AreaList.add("");} else {city_AreaList.addAll(jsonBean.get(i).getCityList().get(c).getArea());}*/city_AreaList.addAll(jsonBean.get(i).getCityList().get(c).getArea());province_AreaList.add(city_AreaList);//添加该省所有地区数据}/*** 添加城市数据*/options2Items.add(cityList);/*** 添加地区数据*/options3Items.add(province_AreaList);
}
mHandler.sendEmptyMessage(MSG_LOAD_SUCCESS);

3.选择器使用
private void showPickerView() {// 弹出选择器

OptionsPickerView pvOptions = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {@Overridepublic void onOptionsSelect(int options1, int options2, int options3, View v) {//返回的分别是三个级别的选中位置String opt1tx = options1Items.size() > 0 ?options1Items.get(options1).getPickerViewText() : "";String opt2tx = options2Items.size() > 0&& options2Items.get(options1).size() > 0 ?options2Items.get(options1).get(options2) : "";String opt3tx = options2Items.size() > 0&& options3Items.get(options1).size() > 0&& options3Items.get(options1).get(options2).size() > 0 ?options3Items.get(options1).get(options2).get(options3) : "";String tx = opt1tx + opt2tx + opt3tx;Toast.makeText(MainActivity.this, tx, Toast.LENGTH_SHORT).show();}
}).setTitleText("城市选择").setDividerColor(Color.BLACK).setTextColorCenter(Color.BLACK) //设置选中项文字颜色.setContentTextSize(20).build();/*pvOptions.setPicker(options1Items);//一级选择器
pvOptions.setPicker(options1Items, options2Items);//二级选择器*/
pvOptions.setPicker(options1Items, options2Items, options3Items);//三级选择器
pvOptions.show();

PickerView 使用相关推荐

  1. iOS pickerView(所有类型一网打尽)

    概述 关于PickView的所有类型都在这里 详细 代码下载:http://www.demodashi.com/demo/11017.html 首先看下项目的整体结构: 一.准备工作 UIPicker ...

  2. android 仿ios三级联动,仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果...

    Android-PickerView 注意事项.详请使用方式.更新日志等,请查看 Wiki文档 Wiki文档,Wiki文档,Wiki文档 !~ 重要的事情说三遍 对于使用上有任何疑问或优化建议等,欢迎 ...

  3. RN PickerView组件

    pickerView多滚轮选中组件 1.功能说明 页面底部弹出的半屏滚轮选择弹窗 目前仅支持到双滚轮,三滚轮的后期再扩展 2.组件效果 单滚轮 双滚轮 3.数据格式 单滚轮数据 {option: [{ ...

  4. android自定义滚轴选择器_Android自定义控件实战—滚动选择器PickerView

    手机里设置闹钟需要选择时间,那个选择时间的控件就是滚动选择器,前几天用手机刷了MIUI,发现自带的那个时间选择器效果挺好看的,于是就自己仿写了一个,权当练手.先来看效果: 效果还行吧?实现思路就是自定 ...

  5. ios 时间选择器月份设置中文_iOS 自定义日期选择器  PickerView优化版

    // rgb颜色转换(16进制->10进制) #define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue ...

  6. Android 选择器 PickerView实例,时间选择器、地址选择器、单项选择器、多项选择器自定义布局

    是采用的github开源库PickerView,省时省力.最终效果图见最后 首先添加依赖: //PickerView 选择器 implementation 'com.contrarywind:Andr ...

  7. picker-view——实现picker自定义样式

    文章目录 参考文档 遇到的坑 组件封装(time-picker) 使用 效果图 参考文档 picker-view vant组件--Layout 布局 picker/vant-DatetimePicke ...

  8. pickerView的一些用法

    //加载pickerview在viewDidLoad函数中调用该函数即可,刚开始将pickerview放在屏幕最底方,通过调用下面的showPickerView函数使其从底部动态出现 -(void) ...

  9. 小程序picker-view的使用

    小程序picker-view的使用 <picker-view indicator-style="height: 50px;" style="width: 100%; ...

  10. Android自定义控件实战——滚动选择器PickerView

    转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/38513301 手机里设置闹钟需要选择时间,那个选择时间的控件就是滚动选择器, ...

最新文章

  1. NCBI下载SRA数据的4种方法
  2. 《金蝶ERP—K/3标准财务模拟实训(11.X版)》——第1章 金蝶K/3标准财务介绍 1.1 金蝶K/3标准财务系统介绍...
  3. java 对象的态_Java面向对象-------多态总结
  4. DotNetNuke 4/5 安装提示 msajax错误,下载AJAX 1.0即可解决
  5. Google十大真理带给中国网络公司的启示
  6. php 删除%3ca%3e标签,a和table标签的应用
  7. iptabels 的一些配置
  8. [前端]网页网络分析及前端网络优化
  9. 第一个IOS APP总结
  10. html基础:基本标签
  11. 《海量数据库解决方案》读后感
  12. Mac安装mysql 8.0.21
  13. 计算机网络实验——华为eNSP模拟器常用命令总结(总结的非常详细( •̀ .̫ •́ )✧快来看啊)
  14. gps高斯utm_UTM坐标系统与高斯
  15. linux环境文件或者文件夹打包
  16. android sqlite多条件查询,sqlite 多条件查询
  17. Git关联多个远程仓库
  18. 微软邮箱(hotmail/outlook):应用密码获取+STARTTLS加密
  19. 计算机的运作流程的个人感想
  20. 如何设置文档背景颜色

热门文章

  1. 软考网络工程师备考经验
  2. uat测试用例和sit测试用例_集成测试和UAT测试(8.7)
  3. 爬虫练习:南阳理工学院ACM题目信息
  4. PyCharm主题自定义
  5. 网络爬虫-爬取飞常准航班信息
  6. CDSN文章转载方法
  7. 服务器imm装系统,通过IMM With Remote Console为服务器安装操作系统
  8. 【信息系统项目管理师】案例分析高频记忆考点汇总
  9. InnoDB存储引擎MVCC实现原理
  10. 嵌入式linux软件/驱动开发工程师需要哪些知识