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
-
创建一个 空的 Android 项目
cn.twle.android.DatePicker
-
修改
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()
方法分别获取年月日的值,然后在组装
我们来演示一下怎么获得值
-
复用上面的 demo
-
修改
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(); } }
运行范例,显示如下