写在前面的话
1、参考自网络。
2、内容如果有不对的,希望可以指出或补充。
3、新知识。
一、概述
(一)DatePicker
DatePicker(日期选择器):继承自FrameLayout类,主要用来使用户可以方便的选择日期。如果要获取到用户修改DataPicker控件数据的改变事件,需要为DatePicker添加OnDateChangedListener监听器。其属性解释如下。
- android:calendarTextColor → 日历列表的文本颜色
- android:calendarViewShown → 设置该日期选择是否显示CalendarView组件
- 【重点】android:datePickerMode → 组件外观,可选值:spinner,calendar(默认)
- android:dayOfWeekBackground → 顶部星期几的背景颜色
- android:dayOfWeekTextAppearance → 顶部星期几的文字颜色
- 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→ 设置起始年
- android:endYear→ 设置结束年
- android:yearListItemTextAppearance→ 列表的文本出现在列表中
- android:yearListSelectorcolor→ 年列表选择的颜色
(二)TimePicker
TimePicker(时间选择器):继承自FrameLayout类。可向用户显示一天中的时间(可以为24小时,也可以为AM/PM制),并允许用户进行选择。如果要获取到用户修改时间数据的事件,则需要为TimePicker添加OnTimeChangedListener监听器。其方法解释如下。
- is24HourView():判断是否为24小时制
- setIs24HourView():设置是否为24小时制显示
- getCurrentXxx():获取当前时间
- setCurrentXxx():设置当前时间
- setOnTimeChangedListener():设置时间被修改的回调方法
二、测试
是在【Day25】部分的测试例子中进行的,只需看对应的应用方法部分即可。
自定义吐司样式:
1-1 toast_style.xml
1-2 bg.xml
2 MainActivity.java
/**设置Toast样式
*/
public void showToast(String str) {
//用于加载布局的系统服务
LayoutInflater inflater = getLayoutInflater();//获取LayoutInflater实例
//参数1:对应的布局文件资源id;参数2:存放Fragment布局的;
//参数3:是否在创建布局时附加到存放Fragment布局的上
View view = inflater.inflate(R.layout.toast_style, null, false);
TextView tv_msg = view.findViewById(R.id.toast_test);
tv_msg.setText(str);
Toast toast = new Toast(MainActivity.this);
toast.setDuration(Toast.LENGTH_SHORT);
toast.setView(view);//
toast.show();
}
(一)DatePicker
① 布局、实现部分
在activity_main.xml中
实现方法的代码部分(MainActivity.java的onCreate()方法中)
/**
* DatePicker日期选择
* 两种组件外观(datePickerMode)同样的调用法
*/
DatePicker datePicker = findViewById(R.id.date_picker_test);//获取控件
datePicker.setVisibility(View.VISIBLE);//显示
Calendar calendar = Calendar.getInstance();//获取这个日历
int year = calendar.get(Calendar.YEAR);//获取到年份
int monthOfYear = calendar.get(Calendar.MONTH);//获取到月份
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);//获取到日
//日期改变时触发
//init()使DatePicker初始化,并设置日期被修改后,回调的响应事件
datePicker.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
String str = "您选择的日期为:" + year + "年" + (monthOfYear + 1)
+ "月" + dayOfMonth + "日";
showToast(str);//调用方法
}
});
② 运行效果如下
(二)TimePicker
① 布局、实现部分
在activity_main.xml中
实现方法的代码部分(MainActivity.java的onCreate()方法中)
/**
* TimePicker时间选择
*/
TimePicker timePicker = findViewById(R.id.time_picker_test);
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
String str = "您选择的时间为:" + hourOfDay + "时" + minute
+ "分";
showToast(str);//调用方法
}
});
② 运行效果如下