先附上下载和效果展示地址 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)的更多相关文章

  1. Android中使用开源框架citypickerview实现省市区三级联动选择

    1.概述 记得之前做商城项目,需要在地址选择中实现省市区三级联动,方便用户快速的填写地址,当时使用的是一个叫做android-wheel 的开源控件,当时感觉非常好用,唯一麻烦的是需要自己整理并解析省 ...

  2. 省市区三级联动 pickerView

    效果图 概述 关于 省市区 三级联动的 pickerView,我想大多数的 iOS 开发者应该都遇到过这样的需求.在遇到这样的需求的时候,大多数人都会觉的这个很复杂,一时无从下手.其实真的没那么复杂. ...

  3. Android 省市县 三级联动(android-wheel的使用)[转]

    转载:http://blog.csdn.net/lmj623565791/article/details/23382805 今天没事跟群里面侃大山,有个哥们说道Android Wheel这个控件,以为 ...

  4. Android实现三级联动下拉框 下拉列表spinner

    Android实现(省.市.县)三级联动下拉框 下拉列表spinner 转载请注明出处: http://www.goteny.com/articles/2013/11/46.html http://w ...

  5. Android 省市县 三级联动(android-wheel的使用)

    转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23382805 今天没事跟群里面侃大山,有个哥们说道Android Wheel这个 ...

  6. Android之省市区三级联动

    最近项目要做一个电商APP,选择收货地址的三级联动滚动选择组件, 控件用起来非常简单 ,下面是它的运行效果: 布局 <LinearLayout xmlns:android="http: ...

  7. 时间操作(JavaScript版)—年月日三级联动(默认显示系统时间)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangshuxuncom/article/details/35263317         这个功能 ...

  8. android:省市县三级联动(基于json和spring)

    一.请看效果图": 二.程序的代码: 1.MainActivity.java package com.loveplusplus.loader.demo.ui; import org.json ...

  9. 记录 vant Picker 选择器,实现三级联动,传对应省市区code值

    最近使用vant UI写移动端,感觉还不错 功能挺全的,带的还有省市区三级联动. 但是 突然遇到一个 产品要传的 省市区的code码,还和vant的 邮编不一样,我*****. 看了一下vant UI ...

随机推荐

  1. Ubuntu ( Linux) Eclipse 乱码问题

    刚装完Ubuntu,导入Java和Android项目时,发现字符乱码,究其原因,是由于Windows下使用的是GBK编码,而Ubuntu使用的是UTF-8编码.网上查找了相关资料,主要解决方案有两种. ...

  2. [转] Android利用tcpdump抓包

    原文链接:http://mysuperbaby.iteye.com/blog/902201 Android利用tcpdump抓包 博客分类: Android AndroidAccessGoHTML  ...

  3. jquery stop( ) 的用法 (转)

    目的:为了 了解stop()的用法,举个例子,直观的方式看看. 实物:一个id="animater"的div包含了一段文字.(以下用animator表示实物) 动画最终的完整效果: ...

  4. window.location.href url含中文服务器收到乱码问题解决

    中文乱码问题 window.location.href url含中文服务器收到乱码问题解决 (1).页面中先对中文进行编码. 如:window.location.href = url+"&a ...

  5. 类型转换辅助工具类TypeCaseHelper

    package org.sakaiproject.util; import java.math.BigDecimal; import java.sql.Date; import java.sql.Ti ...

  6. 【QT】C++ GUI Qt4 学习笔记1

    Find对话框实现 平台 Qt5.3.2 MinGW4.8.2 注意创建时用QDialog finddialog.h #ifndef FINDDIALOG_H #define FINDDIALOG_H ...

  7. Hibernate双向多对多对象关系模型映射

    1 双向many-to-many 业务模型: 描述员工和项目 一个员工同时可以参与多个项目 一个项目中可以包含多个员工 分析:数据库的数据模型,通过中间关系表,建立两个one-to-many构成man ...

  8. WEB前端开发学习:源码canvas 雪

    WEB前端开发学习:源码canvas 雪 双旦节要到了,程序员们为了响应气氛,特别用代码制作了动态雪花,WEB前端开发学习的初学者们一起跟着案例做一遍吧! <!DOCTYPE html> ...

  9. iOS小技巧总结,绝对有你想要的

    原文链接 在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIV ...

  10. IPC进程通信机制

    select.poll.epoll之间的区别总结[整理] 进程间通信---共享内存 信号量和互斥锁的区别 http://www.2cto.com/os/201510/445553.html http: ...