时间和地域三级联动选择器(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);
  }
   
  }

Skip to content

This repository

Configure email settings

Please verify your email address to access all of GitHub‘s features.

An email containing verification instructions was sent to [email protected]

saiwu-bigkoo/Android-PickerView

CodeIssues 24Pull requests 2WikiPulseGraphs

Branch: master

Find fileCopy path

Android-PickerView/app/src/main/java/com/bigkoo/pickerviewdemo/MainActivity.java

ae79eb3 Dec 26, 2015

 saiwu-bigkoo 修复设置初始化position ,第三级数据不对的BUG

1 contributor

RawBlameHistory

183 lines (162 sloc)  7.44 KB

  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");
  return format.format(date);
  }
   
  }
时间: 2024-07-30 17:55:04

时间和地域三级联动选择器(Android-PickerView-master)的相关文章

Android城市三级联动选择器

便捷.新颖的三级fdsafdsa联动城市选择器 /**  * 城市Picker  *  * @author zihao  *  */ public class CityPicker extends LinearLayout {     /** 滑动控件 */fdsaf     private ScrollerNumberPicker provincePicker;     private ScrollerNumberPicker cityPicker;     private ScrollerN

js时间日期的三级联动

aspx: <div style="width:70px;float:left;">生日</div> <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>年 <asp:DropDownList ID="DropDownList2" runat="server">

Android省市区三级联动滚轮选择(真实项目中提取出来的组件)

最近项目要做一个,类似淘宝手机客户端的,选择收货地址的三级联动滚动选择组件,下面是它的大致界面截图: 在IOS中有个叫UIPickerView的选择器,并且在dataSource中定义了UIPickerView的数据源和定制内容,所以用只要熟悉它的基本用法,要实现这么个三级联动滑动选择是挺简单的. 言归正传,今天讨论的是在Android里面如何来实现这么个效果,那么如何实现呢??? 相信部分童鞋首先想到的是android.widget.DatePicker和android.widget.Time

Android省市县三级联动 真实项目抽出 调用只需3行代码 源码免积分下载

写在前面:没想到短短一夜之间就有910次阅读量,迄今为止最高阅读量的一篇,小激动! 项目源码:包含日期.省市县两种选择器[资源积分:0分] ,APK安装包下载,没有CSDN账户的的点此下载源码 fastjson:自己复制博客里源码的小伙伴,注意导入fastjson框架哦!阿里巴巴出品的最快json解析框架 日期选择器:效果图中的选择年月日的日期选择器 任何问题,欢迎评论:源码下载不成功的留下邮箱:文章我还在维护,持续优化,有问题的小伙伴积极评论哈. 先上效果图: 样式可以修改xml文件 省市县三

Android开发之解析XML并实现三级联动效果

请尊重他人的劳动成果,转载请注明出处:Android开发之解析XML并实现三级联动效果 本实例主要应用XmlPullParser解析XML文档中的省市区,然后将数据绑定到Spinner上实现三级联动的效果.关于XmlPullParser的详解大家可以参考<Android开发之使用PULL解析和生成XML>一文. 运行效果图: 程序代码: 核心代码: <pre name="code" class="java">package com.jph.s

Android之省市区三级联动

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

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

这个功能是大学时自己使用纯JavaScript写的,没有借助Jquery,呵呵呵,看起来有点繁琐,可是在当时依稀的记得功能实现后自己好好的高兴一把了呢,从现在来看那时候的自己是多么的幼稚.多么的无知: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>年月日三级联动(默认显示系统时间)</title> <

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

一.请看效果图": 二.程序的代码: 1.MainActivity.java package com.loveplusplus.loader.demo.ui; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.os.Bundle; import android.os.Handler; im

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

转载:http://blog.csdn.net/lmj623565791/article/details/23382805 今天没事跟群里面侃大山,有个哥们说道Android Wheel这个控件,以为是Andriod内置的控件,google一把,发现是个github上的一个控件. 下载地址:https://code.google.com/p/android-wheel/    发现很适合做省市县三级联动就做了一个. 先看下效果图: 1.首先导入github上的wheel项目 2.新建个项目,然后