DatePickerDialog 是个日期控件,在使用此控件的时候发现啊每当选择日期的时候,dialog的标题也会随之改变,还会显示星期,一行基本放不下,所以打算去掉这个效果,但是貌似没有这样的接口来实现。下面看看此控件的源码是如何实现的: DatePickerDialog实现了OnDateChangedListener,在OnDateChangedListener中会调用updateTitle(year, month, day); 所以会dialog的标题会变化看看部分源码
- public class DatePickerDialog extends AlertDialog implements OnClickListener,
- OnDateChangedListener {
-
- public void onDateChanged(DatePicker view, int year,
- int month, int day) {
- updateTitle(year, month, day);
- }
-
- private void updateTitle(int year, int month, int day) {
mCalendar.set(Calendar.YEAR, year);
mCalendar.set(Calendar.MONTH, month);
mCalendar.set(Calendar.DAY_OF_MONTH, day);
setTitle(mTitleDateFormat.format(mCalendar.getTime()));
} - }
根据这个代码,要实现去掉标题的效果,可以自己实现OnDateChangedListener,即可
- public class SetTitleDatePickerDialog extends DatePickerDialog implements
- OnDateChangedListener {
-
- public SetTitleDatePickerDialog(Context context, int theme,
- OnDateSetListener callBack, int year, int monthOfYear,
- int dayOfMonth) {
- super(context, theme, callBack, year, monthOfYear, dayOfMonth);
- // TODO Auto-generated constructor stub
-
- }
-
- public SetTitleDatePickerDialog(Context context, OnDateSetListener callBack,
- int year, int monthOfYear, int dayOfMonth) {
- this(context, com.android.internal.R.style.Theme_Dialog_Alert,
- callBack, year, monthOfYear, dayOfMonth);
- }
-
- public void onDateChanged(DatePicker view, int year, int month, int day) {
- // updateTitle(year, month, day);
-
- }
- }