介绍几个Android自带的选择器.
对话框
以下类属于Dialog的子类. 代码中创建对话框的形式
- DatePickerDialog 日期选择器
- TimePickerDialog 时间选择器
- CharaterPickerDialog 字符选择器(废弃)
控件
在布局中使用的控件
- DatePicker 日期选择器
- TimePicker 时间选择器
- NumberPicker 数字选择器
时间选择器
关键类:TimePickerDialog
示例代码:
new TimePickerDialog(mContext, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { } }, 5,6,true).show();复制代码
唯一需要关心的方法
void onClick (DialogInterface dialog, int which)复制代码
日期选择器
关键类: DatePickerDialog
示例代码:
new DatePickerDialog(mContext, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { } },2017, 4, 10).show();复制代码
数字选择器
关键类:NumberPicker
虽然名字叫做数字选择器, 但实际上字符串都可以. 提供键盘输入(要求输入的内容在范围内)和滑动选择两种输入方式.
复制代码
除了布局创建要想正常工作还需要代码指定参数
- 范围
- 最大值和最小值
mPicker.setDisplayedValues(new String[] { "我", "是", "肥宅" }); // 范围 mPicker.setMinValue(0); // 可滑动最大值 mPicker.setMaxValue(2); // 可滑动最小值 mPicker.setValue(2); // 设置当前选中复制代码
值变化监听器
mPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { } });复制代码
当前状态监听器
mPicker.setOnScrollListener(new NumberPicker.OnScrollListener() { @Override public void onScrollStateChange(NumberPicker view, int scrollState) { } });复制代码
scrollState有三种状态:
- SCROLL_STATE_FLING
- SCROLL_STATE_IDLE
- SCROLL_STATE_TOUCH_SCROLL
长按更新数据
// 长按响应时间, 默认300msvoid setOnLongPressUpdateInterval (long intervalMillis)复制代码
通过实现接口NumberPicker.Formatter
可以自定义格式
void setFormatter (NumberPicker.Formatter formatter)复制代码
字符选择器
关键类:CharaterPickerDialog
太丑, 没啥意义. 随便自定义个对话框都比他好看. 我就不讲了