Android DatePicker 日期选择器

Android DatePicker 主要用于选择一个日期

DatePicker

我们可以使用 <DatePicker> 创建一个 DatePicker

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

android:datePickerMode 属性设置为 spinner 时可以选择 年月日

android:datePickerMode 属性设置为 calendar 会显示一个日历选择器

一般情况下,我们都会使用 DatePickerDialog

我们写一个 demo 来看看 DatePicker

  1. 创建一个 空的 Android 项目 cn.twle.android.DatePicker

  2. 修改 activity_main.xml 添加两个按钮

    <?xml version="1.0" encoding="utf-8" ?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="8dp" 
        android:orientation="vertical" >
    
        <DatePicker
            android:id="@+id/datepicker"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
    

运行范例,显示如下

属性 android:datePickerMode 属性默认为 calendar ,如果我们改成 spinner,则显示如下

两个都很占空间,哭死了

DatePicker 属性 和 事件

我们已经演示了 DatePicker 怎么用,现在我们来看看它都有哪些属性

属性 说明
android:calendarTextColor 日历列表的文本的颜色
android:calendarViewShown 是否显示日历视图
android:datePickerMode 组件外观,可选值:
spinner,
calendar 默认
android:dayOfWeekBackground 顶部星期几的背景颜色
android:dayOfWeekTextAppearance 顶部星期几的文字颜色
android:endYear 结束年份,比如 2017
android:firstDayOfWeek 设置日历列表以星期几开头
android:headerBackground 整个头部的背景颜色
android:headerDayOfMonthTextAppearance 头部日期字体的颜色
android:headerMonthTextAppearance 头部月份的字体颜色
android:headerYearTextAppearance 头部年的字体颜色
android:maxDate 最大日期显示在这个日历视图 mm/dd /yyyy 格式
android:minDate 最小日期显示在这个日历视图 mm/dd /yyyy 格式
android:spinnersShown 是否显示spinner
android:startYear 设置第一年(内容),比如 1940 年
android:yearListItemTextAppearance 列表的文本出现在列表中
android:yearListSelectorColor 年列表选择的颜色

DatePicker 事件

DatePicker 会在值改变时触发 OnDateChangedListener 事件

获得 DatePicker 的值

DatePicker 没有提供专门的方法用于获得它的值,如果要获得值,只能通过 Calendar.getInstance().get() 方法分别获取年月日的值,然后在组装

我们来演示一下怎么获得值

  1. 复用上面的 demo

  2. 修改 MainActivity.java

    package cn.twle.android.datepicker;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    import android.widget.DatePicker;
    import android.widget.Toast;
    
    import java.util.Calendar;
    
    public class MainActivity extends AppCompatActivity implements DatePicker.OnDateChangedListener{
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            DatePicker dp_test = (DatePicker) findViewById(R.id.datepicker);
            Calendar calendar = Calendar.getInstance();
            int year=calendar.get(Calendar.YEAR);
            int monthOfYear=calendar.get(Calendar.MONTH);
            int dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH);
            dp_test.init(year,monthOfYear,dayOfMonth,this);
        }
    
        @Override
        public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            Toast.makeText(MainActivity.this,"您选择的日期是:"+year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日!",Toast.LENGTH_SHORT).show();
        }
    }
    

运行范例,显示如下

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.