介紹幾個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
太醜, 沒啥意義. 隨便自定義個對話方塊都比他好看. 我就不講了