日期、時間選擇器的基本使用

需求分析:
1、默認在標題欄中顯示當前日期和時間
方法:

利用setTitle(String args) 給標題欄設置文本

利用Calendar類來獲取當前日期和時間

private Calendar calendar;
private int year, month, day, hour, min;
//獲取日曆對象
calendar = Calendar.getInstance();
//獲取日期時間
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
hour = calendar.get(Calendar.HOUR_OF_DAY);
min = calendar.get(Calendar.MINUTE);
//月份是從0開始,因此要加以1
setTitle(year + "-" + (month + 1) + "-" + day + " " + hour + ":" + min);

2、監聽日期時間選擇器,實時更新標題欄的信息

效果圖

DatePicker和TimePicker使用

這兩個可以像TextView和Button一樣,直接作爲控件,拖拽到佈局中去,它們對應的監聽器分別是

1.DatePicker.OnDateChangedListener{
    @Override
    public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        this.year = year;
        this.month = monthOfYear;
        this.day = dayOfMonth;
        setTitle(year + "-" + (month + 1) + "-" + day + " " + hour + ":" + min);
    }
}
2.TimePicker.OnTimeChangedListener{
    @Override
    public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
        this.hour = hourOfDay;
        this.min = minute;
        setTitle(year + "-" + (month + 1) + "-" + day + " " + hour + ":" + min);
    }
}

注意DatePicker使用之前要進行初始化

datePicker.init(int year, int monthOfYear, int dayOfMonth,OnDateChangedListener onDateChangedListener)

DatePickerDialog和TimePickerDialog

這種方式其實在app中更爲常見也更爲美觀

方法也很簡單

//對話框形式的datepicker
new DatePickerDialog(this, this, year, month, day).show();
//對話框形式的timepicker
new TimePickerDialog(this, this, hour, min, true).show();

對應的監聽器爲:

1.DatePickerDialog.OnDateSetListener{
    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        this.year = year;
        this.month = monthOfYear;
        this.day = dayOfMonth;
        setTitle(year + "-" + (month + 1) + "-" + day + " " + hour + ":" + min);
    }
}
2.TimePickerDialog.OnTimeSetListener{
    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        this.hour = hourOfDay;
        this.min = minute;
        setTitle(year + "-" + (month + 1) + "-" + day + " " + hour + ":" + min);
    }
}

注意

1、DatePicker對象需要init
2、要考慮month是否是從0開始算起,如果是要得到實際月份要加一

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章