android:startYear |
設置日期選擇器允許選擇的第一年。 |
</tr>
</tbody>
</table>
具體API可參考官方網站: http://developer.android.com/reference/android/widget/DatePicker.html
當用戶更改了DatePicker里的年、月、日時,將觸發OnDateChangedListener監聽器的onDateChange()事件。
示例:
activity_main.xml中:
<DatePicker
android:id="@+id/myDatePicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:startYear="2015"
android:endYear="2020"
android:calendarViewShown="true"
android:spinnersShown="true" />
MainActivity.java中:
private DatePicker datePicker;
private Calendar calendar;
private int year;
private int month;
private int day;
// 獲取日歷對象
calendar = Calendar.getInstance();
// 獲取當前對應的年、月、日的信息
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH) + 1;
day = calendar.get(Calendar.DAY_OF_MONTH);
datePicker = (DatePicker) findViewById(R.id.myDatePicker);
// dataPicker初始化
datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
}
});
效果圖如下:
二. TimerPicker
當用戶更改了TimePicker里的時、分時,將觸發OnTimeChangedListener監聽器的onTimeChanged事件。
示例:
activity_main.xml中:
<TimePicker
android:id="@+id/myTimePicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
MainActivity.java中:
private TimePicker timePicker;
private Calendar calendar;
private int hour;
private int minute;
// 獲取日歷對象
calendar = Calendar.getInstance();
// 獲取對應的時、分的信息
hour = calendar.get(Calendar.HOUR_OF_DAY);
minute = calendar.get(Calendar.MINUTE);
timePicker = (TimePicker) findViewById(R.id.myTimePicker);
// 為TimePicker指定監聽器
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
setTitle(hourOfDay + "-" + minute);
}
});
效果圖如下:
三. DatePickerDialog
DatePickerDialog和TimePickerDialog,與DatePicker和TimePicker,最大的區別是DatePicker和TimePicker是直接顯示在屏幕畫面上的,而DatePickerDialog和TimePickerDialog對象則是以彈出Dialog的方式來顯示。
創建DatePickerDialog的語法如下:
DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)
參數說明:
- context:當前上下文;
- callback:OnDateSetListener日期改變監聽器;
- year:初始化的年;
- monthOfYear:初始化的月(從0開始計數,所以實際應用時需要加1);
- dayOfMonth:初始化的日;
當用戶更改了DatePickerDialog里的年、月、日時,將觸發OnDateSetListener監聽器的onDateSet()事件。
示例:
private Calendar calendar;
private int year;
private int month;
private int day;
// 獲取日歷對象
calendar = Calendar.getInstance();
// 獲取當前對應的年、月、日的信息
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH) + 1;
day = calendar.get(Calendar.DAY_OF_MONTH);
datePicker = (DatePicker) findViewById(R.id.myDatePicker);
// 初始化DatePickerDialog
new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
}
}, year, month, day).show();
效果圖:
四. TimePickerDialog
創建TimePickerDialog的語法如下:
TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener listener, int hourOfDay, int minute, boolean is24HourView)
參數說明:
- context:當前上下文;
- listener:時間改變監聽器;
- hourOfDay:初始化的小時;
- minute:初始化的分鐘;
- is24HourView:是否以24小時顯示時間;
當用戶更改了TimePickerDialog里的時、分時,將觸發OnTimeSetListener監聽器的onTimeSet()事件。
示例:
private Calendar calendar;
private int year;
private int month;
private int day;
// 獲取日歷對象
calendar = Calendar.getInstance();
// 獲取當前對應的年、月、日的信息
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH) + 1;
day = calendar.get(Calendar.DAY_OF_MONTH);
datePicker = (DatePicker) findViewById(R.id.myDatePicker);
// 初始化TimerPickerDialog
new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
setTitle(hourOfDay + ":" + minute);
}
}, hour, minute, true).show();
效果圖:
五. NumberPicker
NumberPicker是數值選擇器,用于讓用戶輸入數值,用戶既可以通過鍵盤輸入數值,也可以通過拖動來選擇數值。
NumberPicker的常用方法如下:
方法 |
描述 |
setMinValue(int minVal) |
設置該組件支持的最小值。 |
setMaxValue(int maxVal) |
設置該組件支持的最大值。 |
setValue(int value) |
設置該組件的當前值。 |
getMaxValue() |
獲得該組件設置的最大值。 |
getMinValue() |
獲得該組件設置的最小值。 |
getValue() |
獲得當前組件顯示的值。 |
setValue(int value) |
設置當前組件顯示的值。 |
示例:
activity_main.xml中:
<NumberPicker
android:id="@+id/numberPicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
<TextView
android:id="@+id/currentNumShow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:textSize="30dp" />
MainActivity.java中:
private NumberPicker numberPicker;
private TextView currentNumShow;
private int minNum = 1, maxNum = 20, currentNum = 10;
// 更新顯示當前值的TextView
private void showCurrentNum() {
currentNumShow.setText("Current Number is " + currentNum + ".");
}
numberPicker = (NumberPicker) findViewById(R.id.numberPicker);
currentNumShow = (TextView) findViewById(R.id.currentNumShow);
// 設置NumberPicker屬性
numberPicker.setMinValue(minNum);
numberPicker.setMaxValue(maxNum);
numberPicker.setValue(currentNum);
// 監聽數值改變事件
numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
currentNum = newVal;
// 在TextView中更新數據
showCurrentNum();
}
});
效果圖如下:
本文由用戶
jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
sesese色