材料日期时间选择器试图所示为您提供的日期和时间选择器的材料设计规范,有一个简单的主题化API。库使用从Android框架代码为基础,并调整它是尽可能接近到材料设计的例子。
支持Android 4.0及了。
随意叉子或发布在github上拉请求。问题可以在GitHub的问题跟踪报告。
日期选取器 | 时间选择器 |
---|---|
|
|
到材质的DateTime选取器库添加到您的项目最简单的方法是添加它作为一个依赖你 build.gradle
dependencies {
compile 'com.wdullaer:materialdatetimepicker:2.5.0'
}
您也可以作为一个Android库添加库到您的项目。所有的库文件住library
。
图书馆遵循相同的API在Android框架等采摘。对于基本实现,你需要
OnTimeSetListener
/OnDateSetListener
TimePickerDialog
/ DatePickerDialog
使用附带的工厂OnTimeSetListener
/OnDateSetListener
为了接收在选择器设置的日期或时间,你将需要实现OnTimeSetListener
或 OnDateSetListener
接口。通常,这将是Activity
或Fragment
创建该选取器。回调使用相同的API标准Android采摘。
@Override
public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute) {
String time = "You picked the following time: "+hourOfDay+"h"+minute;
timeTextView.setText(time);
}
@Override
public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
String date = "You picked the following date: "+dayOfMonth+"/"+(monthOfYear+1)+"/"+year;
dateTextView.setText(date);
}
TimePickerDialog
/ DatePickerDialog
使用附带的工厂
您将需要创建一个新的实例TimePickerDialog
或DatePickerDialog
使用静态newInstance()
方法,提供合适的默认值和回调。一旦对话框配置,你可以调用show()
。
Calendar now = Calendar.getInstance();
DatePickerDialog dpd = DatePickerDialog.newInstance(
MainActivity.this,
now.get(Calendar.YEAR),
now.get(Calendar.MONTH),
now.get(Calendar.DAY_OF_MONTH)
);
dpd.show(getFragmentManager(), "Datepickerdialog");
采摘将自动根据在那里它们被创建的,根据当前的当前主题进行主题colorAccent
。您还可以通过主题在对话框setAccentColor(int color)
的方法。或者,您可以主题采摘通过覆盖颜色资源mdtp_accent_color
,并mdtp_accent_color_dark
在您的项目。
<color name="mdtp_accent_color">#009688</color>
<color name="mdtp_accent_color_dark">#00796b</color>
其中颜色被选择的确切顺序如下:
setAccentColor(int color)
在Java代码android.R.attr.colorAccent
(如果Android 5.0以上版本)R.attr.colorAccent
(例如使用应用程序兼容性时)R.color.mdtp_accent_color
而R.color.mdtp_accent_color_dark
如果没有其他人在你的项目设置
采摘也有黑暗的主题。这可以globablly使用指定mdtp_theme_dark
在你的主题或属性setThemeDark(boolean themeDark)
的功能。该函数调用覆盖XML设置。
<item name="mdtp_theme_dark">true</item>
TimePickerDialog
深色主题TimePickerDialog
拥有,可以通过调用设置一个黑暗的主题
tpd.setThemeDark(true);
DatePickerDialog
深色主题的DatePickerDialog
拥有,可以通过调用设置一个黑暗的主题
dpd.setThemeDark(true);
setAccentColor(String color)
并setAccentColor(int color)
设置为通过对话中使用的强调色彩。字符串版本解析出彩使用Color.parseColor()
。的int版本需要ColorInt字节字符串。这将明确设置的颜色完全不透明。
TimePickerDialog
setTitle(String title)
示出了在所述顶部的标题 TimePickerDialog
DatePickerDialog
setTitle(String title)
示出了在所述顶部的标题DatePickerDialog
,而不是星期几
setOkText()
并setCancelText()
设置对话框确定自定义文本和取消标签。可以接受字符串的资源ID。工程中都DatePickerDialog和TimePickerDialog
setMinTime(Timepoint time)
设定的最低有效时间被选择。时间值在当天早些时候将被停用
setMaxTime(Timepoint time)
设置最大有效时间被选择。在一天的时间值之后将被停用
setSelectableTimes(Timepoint[] times)
您可以在一个阵列传递Timepoints
。这些值在选择器的唯一有效的选择。setMinTime(Timepoint time)
而且setMaxTime(Timepoint time)
,将进一步削减这个名单了。
setTimeInterval(int hourInterval, int minuteInterval, int secondInterval)
设置在TimePickerDialog可选择倍的间隔。这是一个方便的包装器setSelectableTimes
setSelectableDays(Calendar[] days)
你可以传递一个Calendar[]
到DatePickerDialog
。在此列表中的数值为选择器唯一可接受的日期。它优先setMinDate(Calendar day)
和setMaxDate(Calendar day)
setDisabledDays(Calendar[] days)
在这个值Calendar[]
被明确禁用(不可选)。此选项可以一起搭配使用setSelectableDays(Calendar[] days)
:万一有冲突setDisabledDays(Calendar[] days)
将优先setSelectableDays(Calendar[] days)
setHighlightedDays(Calendar[] days)
你可以通过一个Calendar[]
天来突出。他们会以粗体呈现。您可以通过覆盖调整的突出天的颜色mdtp_date_picker_text_highlighted
showYearPickerFirst(boolean yearPicker)
显示今年第一选择器,而不是月份和日期选择器。
OnDismissListener
而OnCancelListener
这两种选择器可以通过一个DialogInterface.OnDismissLisener
或DialogInterface.OnCancelListener
它允许你在发生这些事件的运行代码。
tpd.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialogInterface) {
Log.d("TimePicker", "Dialog was cancelled");
}
});
vibrate(boolean vibrate)
置时做出选择对话框是否应当震动设备。默认为true
。
dismissOnPause(boolean dismissOnPause)
设置选择器是否驳回本身当父活动被暂停或是否重新创建自己当活动重新开始。
DatePickerDialog
autoDismiss(boolean autoDismiss)
如果设置为true
当用户选择一个日期将关闭该选择器。默认为false
。
TimepickerDialog
enableSeconds(boolean enableSconds)
并enableMinutes(boolean enableMinutes)
允许您启用或禁用秒和分钟选择器ONT他TimepickerDialog
。启用秒选择器,意味着使分钟选择器。禁用分钟选择器将禁用秒选择器。最后应用的设置将被使用。默认情况下enableSeconds = false
和
热门源码