时间和地域三级联动选择器(Android-PickerView-master)
先附上下载和效果展示地址 https://github.com/saiwu-bigkoo/Android-PickerView
之后说一下程序依赖后会遇到的问题Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found.
解决办法在Project下的build.gradle中添加两句
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0" 之后附上一下使用代码
| package com.bigkoo.pickerviewdemo; | |
| import java.text.SimpleDateFormat; | |
| import java.util.ArrayList; | |
| import java.util.Calendar; | |
| import java.util.Date; | |
| import android.app.Activity; | |
| import android.os.Bundle; | |
| import android.view.View; | |
| import android.view.View.OnClickListener; | |
| import android.widget.TextView; | |
| import com.bigkoo.pickerview.OptionsPickerView; | |
| import com.bigkoo.pickerview.TimePickerView; | |
| import com.bigkoo.pickerviewdemo.bean.ProvinceBean; | |
| public class MainActivity extends Activity { | |
| private ArrayList<ProvinceBean> options1Items = new ArrayList<ProvinceBean>(); | |
| private ArrayList<ArrayList<String>> options2Items = new ArrayList<ArrayList<String>>(); | |
| private ArrayList<ArrayList<ArrayList<String>>> options3Items = new ArrayList<ArrayList<ArrayList<String>>>(); | |
| 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.YEAR_MONTH_DAY); | |
| //控制时间范围 | |
| // Calendar calendar = Calendar.getInstance(); | |
| // pvTime.setRange(calendar.get(Calendar.YEAR) - 20, calendar.get(Calendar.YEAR)); | |
| 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 OnClickListener() { | |
| @Override | |
| public void onClick(View v) { | |
| pvTime.show(); | |
| } | |
| }); | |
| //选项选择器 | |
| pvOptions = new OptionsPickerView(this); | |
| //选项1 | |
| options1Items.add(new ProvinceBean(0,"广东","广东省,以岭南东道、广南东路得名","其他数据")); | |
| options1Items.add(new ProvinceBean(1,"湖南","湖南省地处中国中部、长江中游,因大部分区域处于洞庭湖以南而得名湖南","芒果TV")); | |
| options1Items.add(new ProvinceBean(3,"广西","嗯~~","")); | |
| //选项2 | |
| ArrayList<String> options2Items_01=new ArrayList<String>(); | |
| options2Items_01.add("广州"); | |
| options2Items_01.add("佛山"); | |
| options2Items_01.add("东莞"); | |
| options2Items_01.add("阳江"); | |
| options2Items_01.add("珠海"); | |
| ArrayList<String> options2Items_02=new ArrayList<String>(); | |
| options2Items_02.add("长沙"); | |
| options2Items_02.add("岳阳"); | |
| ArrayList<String> options2Items_03=new ArrayList<String>(); | |
| options2Items_03.add("桂林"); | |
| options2Items.add(options2Items_01); | |
| options2Items.add(options2Items_02); | |
| options2Items.add(options2Items_03); | |
| //选项3 | |
| ArrayList<ArrayList<String>> options3Items_01 = new ArrayList<ArrayList<String>>(); | |
| ArrayList<ArrayList<String>> options3Items_02 = new ArrayList<ArrayList<String>>(); | |
| ArrayList<ArrayList<String>> options3Items_03 = new ArrayList<ArrayList<String>>(); | |
| ArrayList<String> options3Items_01_01=new ArrayList<String>(); | |
| options3Items_01_01.add("白云"); | |
| options3Items_01_01.add("天河"); | |
| options3Items_01_01.add("海珠"); | |
| options3Items_01_01.add("越秀"); | |
| options3Items_01.add(options3Items_01_01); | |
| ArrayList<String> options3Items_01_02=new ArrayList<String>(); | |
| options3Items_01_02.add("南海"); | |
| options3Items_01_02.add("高明"); | |
| options3Items_01_02.add("顺德"); | |
| options3Items_01_02.add("禅城"); | |
| options3Items_01.add(options3Items_01_02); | |
| ArrayList<String> options3Items_01_03=new ArrayList<String>(); | |
| options3Items_01_03.add("其他"); | |
| options3Items_01_03.add("常平"); | |
| options3Items_01_03.add("虎门"); | |
| options3Items_01.add(options3Items_01_03); | |
| ArrayList<String> options3Items_01_04=new ArrayList<String>(); | |
| options3Items_01_04.add("其他1"); | |
| options3Items_01_04.add("其他2"); | |
| options3Items_01_04.add("其他3"); | |
| options3Items_01.add(options3Items_01_04); | |
| ArrayList<String> options3Items_01_05=new ArrayList<String>(); | |
| options3Items_01_05.add("其他1"); | |
| options3Items_01_05.add("其他2"); | |
| options3Items_01_05.add("其他3"); | |
| options3Items_01.add(options3Items_01_05); | |
| ArrayList<String> options3Items_02_01=new ArrayList<String>(); | |
| options3Items_02_01.add("长沙长沙长沙长沙长沙长沙长沙长沙长沙1111111111"); | |
| options3Items_02_01.add("长沙2"); | |
| options3Items_02_01.add("长沙3"); | |
| options3Items_02_01.add("长沙4"); | |
| options3Items_02_01.add("长沙5"); | |
| options3Items_02_01.add("长沙6"); | |
| options3Items_02_01.add("长沙7"); | |
| options3Items_02_01.add("长沙8"); | |
| options3Items_02.add(options3Items_02_01); | |
| ArrayList<String> options3Items_02_02=new ArrayList<String>(); | |
| options3Items_02_02.add("岳1"); | |
| options3Items_02_02.add("岳2"); | |
| options3Items_02_02.add("岳3"); | |
| options3Items_02_02.add("岳4"); | |
| options3Items_02_02.add("岳5"); | |
| options3Items_02_02.add("岳6"); | |
| options3Items_02_02.add("岳7"); | |
| options3Items_02_02.add("岳8"); | |
| options3Items_02_02.add("岳9"); | |
| options3Items_02.add(options3Items_02_02); | |
| ArrayList<String> options3Items_03_01=new ArrayList<String>(); | |
| options3Items_03_01.add("好山水"); | |
| options3Items_03.add(options3Items_03_01); | |
| options3Items.add(options3Items_01); | |
| options3Items.add(options3Items_02); | |
| options3Items.add(options3Items_03); | |
| //三级联动效果 | |
| pvOptions.setPicker(options1Items, options2Items, options3Items, true); | |
| //设置选择的三级单位 | |
| // pwOptions.setLabels("省", "市", "区"); | |
| pvOptions.setTitle("选择城市"); | |
| pvOptions.setCyclic(false, true, true); | |
| //设置默认选中的三级项目 | |
| //监听确定选择按钮 | |
| pvOptions.setSelectOptions(1, 1, 1); | |
| 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); | |
| 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"); //如果里面需要小时和分钟就带上HH:mm不需要就不用写 | |
| return format.format(date); | |
| } | |
| } |
时间和地域三级联动选择器(Android-PickerView-master)的更多相关文章
- Android中使用开源框架citypickerview实现省市区三级联动选择
1.概述 记得之前做商城项目,需要在地址选择中实现省市区三级联动,方便用户快速的填写地址,当时使用的是一个叫做android-wheel 的开源控件,当时感觉非常好用,唯一麻烦的是需要自己整理并解析省 ...
- 省市区三级联动 pickerView
效果图 概述 关于 省市区 三级联动的 pickerView,我想大多数的 iOS 开发者应该都遇到过这样的需求.在遇到这样的需求的时候,大多数人都会觉的这个很复杂,一时无从下手.其实真的没那么复杂. ...
- Android 省市县 三级联动(android-wheel的使用)[转]
转载:http://blog.csdn.net/lmj623565791/article/details/23382805 今天没事跟群里面侃大山,有个哥们说道Android Wheel这个控件,以为 ...
- Android实现三级联动下拉框 下拉列表spinner
Android实现(省.市.县)三级联动下拉框 下拉列表spinner 转载请注明出处: http://www.goteny.com/articles/2013/11/46.html http://w ...
- Android 省市县 三级联动(android-wheel的使用)
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23382805 今天没事跟群里面侃大山,有个哥们说道Android Wheel这个 ...
- Android之省市区三级联动
最近项目要做一个电商APP,选择收货地址的三级联动滚动选择组件, 控件用起来非常简单 ,下面是它的运行效果: 布局 <LinearLayout xmlns:android="http: ...
- 时间操作(JavaScript版)—年月日三级联动(默认显示系统时间)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangshuxuncom/article/details/35263317 这个功能 ...
- android:省市县三级联动(基于json和spring)
一.请看效果图": 二.程序的代码: 1.MainActivity.java package com.loveplusplus.loader.demo.ui; import org.json ...
- 记录 vant Picker 选择器,实现三级联动,传对应省市区code值
最近使用vant UI写移动端,感觉还不错 功能挺全的,带的还有省市区三级联动. 但是 突然遇到一个 产品要传的 省市区的code码,还和vant的 邮编不一样,我*****. 看了一下vant UI ...
随机推荐
- Java for LeetCode 233 Number of Digit One
Given an integer n, count the total number of digit 1 appearing in all non-negative integers less th ...
- 【processing】小代码4
translate(x,y); 移动坐标原点到x,y处 rotate(angle); 坐标沿原点顺时针转动angle度 scale(n); 绘制图像放大n倍 pushMatrix() 将当前坐标压入 ...
- 中等难度SQL语句(存储过程,分页,拼接字段、游标,日期类型转换,动态行转列,视图)汇总
一.创建存储过程 if Exists(select name from sysobjects where NAME = 'sp1LoginUser' and type='P')drop procedu ...
- HDU 5996 dingyeye loves stone ---BestCoder Round #90
题目链接 设根节点的深度为0,将所有深度为奇数的节点的石子数目xor起来,则先手必胜当且仅当这个xor和不为0. 证明同阶梯博弈.对于偶深度的点上的石子,若对手移动它们,则可模仿操作:对于奇深度上的石 ...
- 解决Windows10下80端口被PID为4的System占用的问题
一.背景 最近由于好奇心,更新了windows10系统,感觉上手还蛮快,而且体验还不错,但是在IDEA中做开发时,使用80端口进行启动项目的时候发现端口被占用了,于是尝试解决这个问题.具体步骤如下,分 ...
- error C2664: 'TextOutW' : cannot convert parameter 4 from const char [5]' to LPCTSTR
转自:http://blog.sina.com.cn/s/blog_4aa4593d0100odra.html 问题的原因是字符串ANSI和Unicode编码的区别, VC6与VS2003等默认使用A ...
- 剑指Offer——网易笔试之解救小易
知识要点 首先介绍一下曼哈顿,曼哈顿是一个极为繁华的街区,高楼林立,街道纵横,从A地点到达B地点没有直线路径,必须绕道,而且至少要经C地点,走AC和 CB才能到达,由于街道很规则,ACB就像一个直角3 ...
- 理解KMP算法
母串:S[i] 模式串:T[i] 标记数组:Next[i](Next[i]表示T[0~i]最长前缀/后缀数) 先来讲一下最长前缀/后缀的概念 例如有字符串T[6]=abcabd接下来讨论的全部是真前缀 ...
- 浅谈我的编程之路——感谢引领我的leader
在开发的道路上,就始终无法避开版本控制,哪怕你是独自一人进行开发,版本控制也是有必要的,从最早开始使用CVS,到后来使用SVN,再到git,最后又回到了SVN,但是不知道为什么真的对SVN很无爱. 现 ...
- ASP.NET MVC中Controller返回值类型ActionResult
1.返回ViewResult视图结果,将视图呈现给网页 public class TestController : Controller { //必须存在Controller\Test\Index.c ...