前言

Android开发有不少情况下会用到Picker,例如选择 地址、日期、时间。

原生Picker和仿iOS的Picker都是上下或左右滑动到固定区域来选择选项:

显示数量少,如果当前选项距离需要的选项比较远就得滑很多次;

滑动不好控制,一不小心就滑过了需要往相反方向慢慢滑回来,很烦人。

ZBLibrary中的GridPicker每页显示多行多列,大大增加了显示数量;将滑动选择改为点击选择,大大提高了操作精度。

一、原生Picker

问题:

1.地址和时间选择器显示的选项数量少,还只能挨个切换,效率低下

2.日期选择器选择年份需要点击最上方年份文字,手指不容易够到,显示的选项也较少;

   月份选择要点击左右箭头或左右滑动,只能挨个切换,效率低下

二、仿iOS的Picker

问题:

1.显示的选项数量少

2.选项只能挨个切换。

3.需要上下滑动到指定方框,不好控制。 

三、ZBLibrary GridPicker

以下Gif图看起来比较卡,实际上手机运行得很流畅

所有操作都在下半屏,操作轻松;

每页显示多行多列,大大增加了显示数量;

将滑动选择改为点击选择,大大提高了操作精度。

ZBLibrary GridPicker完美地解决了以上所有问题!

如何使用ZBLibrary GridPicker

1.下载、导入、依赖ZBLibrary

点击右边链接查看 http://my.oschina.net/u/2437072/blog/665241

2.打开对应Activity并传值

以日期选择器DatePickerWindow为例:

可以这样打开并传值

toActivity(DatePickerWindow.createIntent(context, new int[]{1971, 0, 1}
, TimeUtil.getDateDetail(System.currentTimeMillis())), 1000, false);

toActivity是ZBLibrary中BaseActivity里的方法,可以换成startActivityForResult

3.onActivityResult中接收返回结果

    @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != RESULT_OK) {
return;
} switch (requestCode) {
case 1000:
if (data != null) {
ArrayList<Integer> list = data.getIntegerArrayListExtra(DatePickerWindow.RESULT_DATE_DETAIL_LIST);
if (list != null && list.size() >= 3) { showShortToast("选择的日期为" + list.get(0) + "-" + (list.get(1) + 1) + "-" + list.get(2));
}
}
break;
default:
break;
}
}

好了。

如果你连2-3这几步都懒得做,把ZBLibrary里的DemoMainActivity.java 复制>粘贴>改名>改代码 就可以啦!

事实上ZBLibrary中的地址、日期、时间选择器都是用GridPickerView来控制显示和操作的,

你也可以使用GridPickerView实现其它用途的选择器。

ZBLibrary-Android快速开发框架

下载地址(欢迎Star,欢迎Fork)

https://github.com/TommyLemon/Android-ZBLibrary

下载试用

ZBLibraryDemoApp.apk

不一样的Android选择器,简单方便,地址日期时间都好用!的更多相关文章

  1. Android日期时间选择器DatePicker、TimePicker日期时间改变事件响应(Android学习笔记)

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  2. Android中实现日期时间选择器(DatePicker和TimePicker)

    利用Android应用框架提供的DatePicker(日期选择器)和TimePicker(时间选择器),实现日期时间选择器. Dialog的Content布局文件(date_time_dialog.x ...

  3. 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载

    19af543b068bdb7f27787c2bc69aba7f Additional Download (32-, 64-bit) Package r10 STL debug info androi ...

  4. Android 实现简单音乐播放器(二)

    在Android 实现简单音乐播放器(一)中,我介绍了MusicPlayer的页面设计. 现在,我简单总结一些功能实现过程中的要点和有趣的细节,结合MainActivity.java代码进行说明(写出 ...

  5. Android 实现简单音乐播放器(一)

    今天掐指一算,学习Android长达近两个月了,今天开始,对过去一段时间的学习收获以及遇到的疑难杂症做一些总结. 简单音乐播放器是我自己完成的第一个功能较为完整的APP,可以说是我的Android学习 ...

  6. Android课程---Android Studio简单设置

    Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面.Settings-->Appearance-->Theme, ...

  7. Android实现简单音乐播放器(MediaPlayer)

    Android实现简单音乐播放器(MediaPlayer) 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能 ...

  8. Android实现简单拨号器

    Android实现简单拨号器 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 代码实现 界面布局只有GridLayout和EditText两个控件,全部 ...

  9. 【转】Android Studio简单设置

    原文网址:http://ask.android-studio.org/?/article/14 Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以 ...

随机推荐

  1. iOS NSURLConnection POST异步请求封装,支持转码GBK,HTTPS等

    .h文件 #import <Foundation/Foundation.h> //成功的回调 typedef void(^successBlock)(id responseObj); // ...

  2. TFS二次开发系列:六、TFS的版本控制

    在TFS中对于版本控制是在WorkSpace工作区来控制的. 首先我们先整理WorkSpace的一些基本使用方法. CheckIn:迁入挂起的操作 CreateMapping:创建一个本地映射地址 D ...

  3. 调用微信JsAPI端获取位置

    public partial class test : BasePage { protected test() { AccessPage = PageWebType.WX; } protected s ...

  4. 实验一 认识DOS

    #include<stdio.h> #include<string.h> void main() {       char cmd[20][20]={"dir&quo ...

  5. MyBatis 简介

    MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis ...

  6. Hibernate 简介

    其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持.然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西, ...

  7. 新手如何查看API文档?

    Java API文档为例: 1:知道包名,可以在Overview里直接找到这个包,然后去查这个包下面的类和方法.2:知道类名和方法名,可以在Index.html里直接去找这个类或方法,然后查看.3:如 ...

  8. GCC for Win32开发环境介绍

    http://blog.csdn.net/VisionCat/article/details/711693 http://blog.csdn.net/VisionCat/article/categor ...

  9. ROS学习笔记(五)——建立工作空间

    pre.ctl { font-family: "Liberation Mono", monospace } p { margin-bottom: 0.25cm; line-heig ...

  10. 【APP自动化测试】Monkey的测试原理和方法

    参考资料:http://blog.csdn.net/io_field/article/details/52189972 一.Monkey测试原理:Monkey是Android中的一个命令行工具,可以运 ...