zoukankan      html  css  js  c++  java
  • 时间和地域三级联动选择器(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);
      }
       
      }

     

     
    查看全文
  • 相关阅读:
    [转]Javascript中prototype和constructor详解
    [转]SCIM输入启动遭遇“Failed to load x11 FrontEnd module. ”错误
    [转]搭建高效的symbols服务器
    编译 boost 1.52.0
    opensuse 11.4 安装slickedit 2012 完美支持中文
    【转】MyEclipse 6.5 大提速
    [转]VS2005生成pdb签名的问题
    理解泛型 从需求演变开始
    数学中一个很简单的组合 但用程序如何去实现呢?
    从零开始开发服务器控件
  • 原文地址:https://www.cnblogs.com/niupi/p/5600432.html
  • 最新文章
  • 64位Windows系统,32位Python, 判断系统是32位还是64位
    Google Chrome 浏览器命令行开关参考 Chrome Command Line Switches
    位数组实现用筛法(Sieve of Eratosthnes)计算素数
    任意进制的转换函数
    实现类似Andriod Grid效果的列表视图
    Windows eclipse 3.7 Unable to load default SVN Client
    eclipse 项目中双击.bat文件的执行路径
    Linux Socket 网络编程 (IBM网站)第一章
    关于SqlCe的安装
    MySQL学习
  • 热门文章
  • Linux Socket 网络编程 (IBM网站)第二章
    Linux Socket 网络编程 (IBM网站)
    COM编程学习笔记
    MySQL语法
    STL容器学习笔记
    redis中文API
    [转载]caoz 谈技术工程师的进步
    [转] Windows下如何解放右Ctrl+Space给应用程序使用
    如何上google
    MyEclipse 6.5 快捷键
Copyright © 2011-2022 走看看