大家在应用中大部分都会使用到日历 那么这篇文章就来讲一下如何使用系统自带的日历DatePickerDialog 首先调用Calendar类获取年月日
代码语言:javascript复制 Calendar ca = Calendar.getInstance();
int mYear = ca.get(Calendar.YEAR);
int mMonth = ca.get(Calendar.MONTH);
int mDay = ca.get(Calendar.DAY_OF_MONTH);
然后将获取到的年月日放进new出来的DatePickerDialog中
代码语言:javascript复制 DatePickerDialog datePickerDialog = new DatePickerDialog(getContext(),
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
mYear = year;
mMonth = month;
mDay = dayOfMonth;
final String data = (month 1) "月-" dayOfMonth "日 ";
}
},
mYear, mMonth, mDay);
datePickerDialog.show();
这样我们就可以进行日期的选择了 但是如果我们想只进行年月的选择不进行日选择怎么办呢 代码如下
代码语言:javascript复制 //只显示年月,隐藏掉日
DatePicker dp = findDatePicker((ViewGroup) datePickerDialog.getWindow().getDecorView());
if (dp != null) {
((ViewGroup)((ViewGroup)dp.getChildAt(2)).getChildAt(2))
.getChildAt(2).setVisibility(View.GONE);
//如果想隐藏掉年,将getChildAt(2)改为getChildAt(0)
}
那么还有一个疑问如果我们想改变系统DatePickerDialog的风格怎么办呢 其实很简单 只需要在style.xml中自己定义即可 然后把定义好的样式放到DatePickerDialog构造中的第一个参数后即可 代码如下
代码语言:javascript复制 DatePickerDialog datePickerDialog = new DatePickerDialog(getContext(), R.style.MyDatePickerDialogTheme,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
mYear = year;
mMonth = month;
mDay = dayOfMonth;
final String data = (month 1) "月-" dayOfMonth "日 ";
}
},
mYear, mMonth, mDay);
datePickerDialog.show();
好了到这里DatePickerDialog的定义就到此结束了