我平时项目开发必备框架
- Android上最强网络请求 Net
- Android上最强列表(包含StateLayout) BRV
- Android最强缺省页 StateLayout
- JSON和长文本日志打印工具 LogCat
- 支持异步和全局自定义的吐司工具 Tooltip
- 开发调试窗口工具 DebugKit
- 一行代码创建透明状态栏 StatusBar
介绍几个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
虽然名字叫做数字选择器, 但实际上字符串都可以. 提供键盘输入(要求输入的内容在范围内)和滑动选择两种输入方式.
<NumberPicker
android:id="@+id/picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
除了布局创建要想正常工作还需要代码指定参数
- 范围
- 最大值和最小值
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
长按更新数据
// 长按响应时间, 默认300ms
void setOnLongPressUpdateInterval (long intervalMillis)
通过实现接口NumberPicker.Formatter可以自定义格式
void setFormatter (NumberPicker.Formatter formatter)
字符选择器
关键类:CharaterPickerDialog
太丑, 没啥意义. 随便自定义个对话框都比他好看. 我就不讲了