当前位置:主页 > android教程 > Android日期时间选择器使用

Android自定义DataTimePicker日期时间选择器使用详解

发布:2023-03-10 18:00:01 59


本站收集了一篇相关的编程文章,网友武经国根据主题投稿了本篇教程内容,涉及到Android日期时间选择器、Android、DataTimePicker日期选择器、Android时间选择器、Android日期时间选择器使用相关内容,已被657网友关注,相关难点技巧可以阅读下方的电子资料。

Android日期时间选择器使用

Android开发之自定义DataTimePicker(日期时间选择器),供大家参考,具体内容如下

最近项目中,要求日期和时间在同一个页面同时选择,这个就需要自定义了,其实所谓的自定义只不过是把时间和日期对话框组合在一起而已。

一、基本知识

1、关于日期的几个控件:

DatePicker(日期选择控件)
TimePicker(时间选择控件)
DatePickerDialog(日期选择对话框)
TimePickerDialog(时间选择对话框)
AnalogClock(模拟时钟控件)
DigitalClock(数字时钟控件)

2、相关控件介绍

DatePicker 、 TimePicker 都继承自Android.widget.FrameLayout,并且默认展示风格、与操作风格也类似。DatePicker用于展示一个日期选择控件,TimePicker用于展示一个时间选择控件。

DatePicker常用相关属性:

android:calendarViewShown:是否显示日历
android:spinnersShown:是否显示为滚动条样式(会同时显示日历和滚动条样式上边两个都不设置)
android:startYear:设置可选开始年份。
android:endYear:设置可选结束年份。
android:maxDate:设置可选最大日期,以mm/dd/yyyy格式设置。
android:minDate:设置可选最小日期,以mm/dd/yyyy格式设置。
DatePicker的方法而言,除了常用获取属性的setter、getter方法之外,还需要特别注意一个初始化的方法init()方法,用于做DatePicker控件的初始化,并且设置日期被修改后,回调的响应事件。此方法的签名如下:
init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)
从上面的init()方法可以看到,DatePicker被修改时响应的事件是DatePicker.OnDateChangedListener 事件,如果要响应此事件,需要实现其中的onDateChanged()方法,其中参数从签名即可了解意思,这里不再累述。
onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
作为一个时间选择控件来说,TimePicker需要与时间相关的getter、setter方法之外,还需要有时间被修改够,回调的响应事件。

TimePicker常用方法有如下几个:

is24HourView():判断是否为24小时制。
setIs24HourView():设置是否为24小时制显示。
getCurrentXxx():获取当前时间。
setCurrentXxx():设置当前时间。
setOnTimeChangedListener():设置时间被修改的回调方法。
TimePicker控件被修改的回调方法,通过setOnTimeChangedListener()方法设置,其传递一个 TimePicker.OnTimeChangedListener 接口,需要实现其中的onTimeChanged()方法。

二、实现步骤

首先,对话框的布局:




    

    

然后,我封装了一个工具类:

public static void getDateTime(Context mContext, final TextView textView) {
        View date_time_picker = View.inflate(mContext, R.layout.date_time_picker, null);
        final DatePicker datePicker = (DatePicker) date_time_picker.findViewById(R.id.data_picker);
        final TimePicker timePicker = (TimePicker) date_time_picker.findViewById(R.id.timer_picker);

        timePicker.setIs24HourView(true);
        //   Build   DateTimeDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
        builder.setView(date_time_picker);
        builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                String dateStr = datePicker.getYear() + "-" + datePicker.getMonth() + "-" + datePicker.getDayOfMonth();
                int currentMinute = timePicker.getCurrentMinute();
                String curMinute = "";
                if (currentMinute < 10) {
                    curMinute = "0" + currentMinute;
                } else {
                    curMinute = String.valueOf(currentMinute);
                }
                String timeStr = timePicker.getCurrentHour() + ":" + curMinute;
                textView.setText(dateStr + "  " + timeStr);
            }
        });
        builder.show();
    }

最后,直接调用就好了

DateUtil.getDateTime(this, tv);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。


参考资料

相关文章

  • Android布局ConstraintLayout代码修改约束及辅助功能

    发布:2023-03-13

    这篇文章主要为大家介绍了Android布局ConstraintLayout代码修改约束及辅助功能示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Android中ShapeableImageView使用实例详解(告别shape、三方库)

    发布:2023-03-04

    之前Google推送了文章,Android Material组件1.2.0里面就有ShapeableImageView,不用像以前再写shape,下面这篇文章主要给大家介绍了关于Android中ShapeableImageView使用的相关资料,需要的朋友可以参考下


  • Android neon 优化实践示例

    发布:2023-03-04

    这篇文章主要为大家介绍了Android neon 优化实践示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Android事件分发机制示例分析

    发布:2023-03-03

    在说事件分发之前,我们先想一个问题,在APP中我们点击一个View的时候,事件是如何传递到这个View的呢?其实这就是我理解的事件分发机制。即当手指点击屏幕时,事件传递到具体View的过程


  • Android获取设备传感器的方法

    发布:2023-03-11

    这篇文章主要为大家详细介绍了Android获取设备传感器的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Android开发之AlertDialog实现弹出对话框

    发布:2023-03-11

    这篇文章主要为大家详细介绍了Android开发之AlertDialog实现弹出对话框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Android实现秒表功能

    发布:2023-03-07

    这篇文章主要为大家详细介绍了Android实现简易秒表功能,具备启停功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • android绘制曲线和折线图的方法

    发布:2023-03-08

    这篇文章主要介绍了android绘制曲线和折线图的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


网友讨论