上一期学习了日期选择器DatePicker和时间选择器TimePicker,是不是感觉非常简单,本期继续来学习数值选择器NumberPicker 。
一、NumberPicker概述
NumberPicker 是用于选择一组预定义好数字的组件,用户既可以通过键盘输入数值,也可以通过滚动来选择数值。
NumberPicker的常用方法如下:
· setMinValue(int minVal):设置该组件支持的最小值。
· setMaxValue(int maxVal):设置该组件支持的最大值。
· setValue(int value):设置该组件的当前值。
· getMaxValue():获得该组件设置的最大值。
· getMinValue():获得该组件设置的最小值。
· getValue():获得当前组件显示的值。
· setValue(int value):设置当前组件显示的值。
使用NumberPicker一共有2个监听器和一个Formatter格式化处理器,
· NumberPicker.OnValueChangeListener :用于监听当前value的变化。
· NumberPicker.OnScrollListener:用于监听该控件的scroll状态。主要包括以下三种状态:
· SCROLL_STATE_TOUCH_SCROLL:用户按下去然后滑动。
· SCROLL_STATE_FLING: 相当于是SCROLL_STATE_TOUCH_SCROLL的后续滑动操作。
· SCROLL_STATE_IDLE: NumberPicker不在滚动。
· NumberPicker.Formatter: 用于格式化显示该组件中的value,如0—23格式化为00 — 23。
二、NumberPicker示例
接下来通过一个简单的示例程序来学习NumberPicker的使用。
继续使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建numberpicker_layout.xml文件,在其中填充如下代码片段:
[代码]xml代码:
01 02 03 04 05 06 07 08 09 10 11 |
|
新建NumberPickerActivity.java文件,加载上面新建的布局文件,初始化NumberPicker并获取用户的选择,具体代码如下:
[代码]java代码:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
上面程序代码为NumberPicker绑定事件监听器的代码,当用户通过这该组件来选择时间时,监听器就会被触发。
运行程序,可以看到所示界面效果。
除了Android系统定义的DatePicker、TimePicker和NumberPicker,在实际开发中往往不能满足,会经常自定义一些Picker组件,比如城市选择器、性别选择器、图片选择器、颜色选择器等。
一般可以借用第三方组件来快速完成,当然也可以自定义实现,此处不做过多介绍,大家可以自己去研究,欢迎一起探讨。
今天就先到这里,如果有问题欢迎留言一起探讨,也欢迎加入Android零基础入门技术讨论微信群,共同成长!