Android DatePicker和TimePicker

1.在 xml中布置Datepicker和TimePicker

    <DatePicker android:id="@+id/dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <TimePicker android:id="@+id/tp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

2.在Activity中初始化

    private TimePicker tp;
    private DatePicker dp;
    protected void onCreate(Bundle savedInstanceState) {
        ....
        dp=(DatePicker)findViewById(R.id.dp);
        tp=(TimePicker)findViewById(R.id.tp);
     }

3.初始化calendar類

    private Calendar cl;
    private int year,month,day,hour,minute;
    protected void onCreate(Bundle savedInstanceState) {
          ·····
        cl=Calendar.getInstance();
        year=cl.get(Calendar.YEAR);
        month=cl.get(Calendar.MONTH)+1;
        day=cl.get(Calendar.DAY_OF_MONTH);
        hour=cl.get(Calendar.HOUR_OF_DAY);
        minute=cl.get(Calendar.MINUTE);
        setTitle(year+"-"+month+"-"+day+"-"+hour+"-"+minute);
    }

WARNING

month=cl.get(Calendar.MONTH)+1;

其中g(shù)et(Calendar.MONTH)方法得到的數(shù)從0開始

setTitle(year+"-"+month+"-"+day+"-"+hour+"-"+minute);

該代碼用于改變標(biāo)題

4.初始化DatePicker的日期

        dp.init(year, cl.get(Calendar.MONTH), day, new OnDateChangedListener() {
            
            @Override
            public void onDateChanged(DatePicker view, int year, int monthOfYear,
                    int dayOfMonth) {
                // TODO Auto-generated method stub
                setTitle(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);
            }
        });

WARNING

dp.init(year, cl.get(Calendar.MONTH), day, new OnDateChangedListener()

該方法中,月份需要用從0開始的Calendar.MONTH

setTitle(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);

傳入?yún)?shù)為從0開始的月數(shù),在傳出時需要+1

5.初始化TimePicker的時間,并實現(xiàn)時間選擇器

        tp.setOnTimeChangedListener(new OnTimeChangedListener() {
            
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                // TODO Auto-generated method stub
                setTitle(hourOfDay+":"+minute);
            }
        });

6.實現(xiàn)日期選擇對話框和時間選擇對話框

        new DatePickerDialog(this,new OnDateSetListener() {
            
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear,
                    int dayOfMonth) {
                // TODO Auto-generated method stub
                setTitle(year+"-"+(monthOfYear+1)+"-"+dayOfMonth);
            }
        }, year,cl.get(Calendar.MONTH), day).show();


        new TimePickerDialog(this, new OnTimeSetListener() {
            
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                // TODO Auto-generated method stub
                setTitle(hourOfDay+":"+minute);
            }
        }, hour, minute, true).show();

同理,注意傳入的是Calendar.MONTH是以0開頭的月數(shù)
new TimePickerDialog()方法的最后一個參數(shù)是是否選擇24小時制(true or false)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容