Android中的日期和时间设置对话框

时间:2010-11-23 20:05:31

标签: android

如何在Android中创建日期和时间设置对话框?我想要:

  • 3个字段 - 日,小时和分钟
  • 它看起来应该是系统原生的 - 这使得编写我自己的小部件非常困难 - 如何使每个字段上方/下方的加号/减号按钮看起来像TimePickerDialog中的标准按钮?我的意思是甚至在HTC Sense上。

1 个答案:

答案 0 :(得分:15)

创建用于显示日期和时间的按钮,并触发日期和时间对话框。

示例代码:

    fromDatePicker = (Button) findViewById(R.id.fromDatePicker);
    fromDatePicker.setText(dateNow);
    fromDatePicker.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            showDialog(FROM_DATE_DIALOG_ID);
        }
    });

    fromTimePicker = (Button) findViewById(R.id.fromTimePicker);
    fromTimePicker.setText(timeNow);
    fromTimePicker.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            showDialog(FROM_TIME_DIALOG_ID);
        }
    });

创建如下对话框:

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
        case FROM_TIME_DIALOG_ID:
            return new TimePickerDialog(this,fromTimeSetListener, fromHour, fromMinute, false);
        case FROM_DATE_DIALOG_ID:
            return new DatePickerDialog(this,fromDateSetListener,fromYear, fromMonth, fromDay);
        case TO_TIME_DIALOG_ID:
            return new TimePickerDialog(this,toTimeSetListener, toHour, toMinute, false);
        case TO_DATE_DIALOG_ID:
            return new DatePickerDialog(this,toDateSetListener,toYear, toMonth, toDay);                
    }
    return null;
}

您的屏幕将如下所示:

alt text

单击日期按钮时,将弹出一个类似于此的日期选择器:

alt text

单击时间按钮时,会弹出一个时间戳,如下所示:

alt text

Android不提供开箱即用的组合DateTimePicker对话框...如果您想在1个屏幕或对话框上同时组合日期和时间选择器,您有3个选项:

在布局/视图中使用UI小部件:

<TimePicker
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />  

<DatePicker
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />  

查找提供此功能的第三方组件

http://code.google.com/p/datetimepicker

有一个自定义日期时间戳

自己写一个