Date Pickers

摘自 Google Material Design 文档

对话框选择器用来在手机上选择日期。

被选中的一天,用与其他日期不同的颜色和着重类型的实心圆来表示。

如何添加?

I. 在 build.gradle 里添加最新的 appcompat 库。

dependencies {  
    compile 'com.android.support:appcompat-v7:X.X.X' // where X.X.X version
}

II. 让你的 Activity 继承自 android.support.v7.app.AppCompatActivity 并实现 DatePickerDialog.OnDateSetListener 接口。

public class MainActivity extends AppCompatActivity  
    implements DatePickerDialog.OnDateSetListener {

III. 创建你的 DatePickerDialog ,并传入 context, listener, startYear, starthMonth, startDay 等参数。

DatePickerDialog datePickerDialog = new DatePickerDialog(  
    context, listener, startYear, starthMonth, startDay);

IV. 使用 DatePickerDialogshow 方法展示对话框。

datePickerDialog.show();  

如何设置样式?

I. 为对话框背景声明自定义 drawable.xml

<?xml version="1.0" encoding="utf-8"?>  
<!-- From: support/v7/appcompat/res/drawable/abc_dialog_material_background_light.xml -->  
<inset xmlns:android="http://schemas.android.com/apk/res/android"  
    android:insetLeft="16dp"
    android:insetTop="16dp"
    android:insetRight="16dp"
    android:insetBottom="16dp">

    <shape android:shape="rectangle">
        <corners android:radius="2dp" />
        <solid android:color="@color/indigo" />
    </shape>

</inset>  

II. 在 styles.xml 声明自定义样式。

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">  
    <item name="colorControlNormal">@android:color/white</item>
    <item name="colorControlActivated">@color/pink</item>
    <item name="textColorAlertDialogListItem">@android:color/white</item>
    <item name="colorAccent">@color/pink</item>
    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="android:windowBackground">@drawable/background_dialog</item>
</style>  

III. 设置你的自定义样式为 DatePickerDialog 的一个参数。

DatePickerDialog datePickerDialog = new DatePickerDialog(  
    this, R.style.MyDialogTheme, listener, 2016, 21, 3);

IV. 使用 show 方法展示你的 DatePickerDialog

datePickerDialog.show();  

翻译水平有限,欢迎批评指正

原文作者:Saúl Molinero 原文地址:Date Pickers

译者:Ailurus

Ailurus

Android Developer.