android datepicker只显示年和日期

public class YearMonthPicker extends DatePickerDialog {

public YearMonthPicker(Context context, int theme,
OnDateSetListener callBack, int year, int monthOfYear,
int dayOfMonth) {
super(context, theme, callBack, year, monthOfYear, dayOfMonth);
init(year, monthOfYear, dayOfMonth);
}

public YearMonthPicker(Context context, OnDateSetListener callBack,
int year, int monthOfYear, int dayOfMonth) {
super(context, callBack, year, monthOfYear, dayOfMonth);
init(year, monthOfYear, dayOfMonth);
}

private void init(int year, int month, int dayOfMonth) {
hideDayView();
hideCalendarView();
setTitle(year, month);
}

@SuppressLint("NewApi")
private void hideCalendarView(){
if (android.os.Build.VERSION.SDK_INT >= 11) {
getDatePicker().setCalendarViewShown(false);
}
}

@Override
public void onDateChanged(DatePicker view, int year, int month, int day) {
super.onDateChanged(view, year, month, day);
setTitle(year, month);
}

private void setTitle(int year, int month) {
month += 1;
String yearStr = String.valueOf(year);
String monthStr = (month < 10) ? ("0" + month) : ("" + month);
setTitle(yearStr + "/" + monthStr);
}

private void hideDayView() {
try {
Field[] datePickerDialogFields = getClass().getSuperclass()
.getDeclaredFields();
for (Field datePickerDialogField : datePickerDialogFields) {
if (datePickerDialogField.getName().equals("mDatePicker")) {
datePickerDialogField.setAccessible(true);
DatePicker datePicker = (DatePicker) datePickerDialogField
.get(this);
Field datePickerFields[] = datePickerDialogField.getType()
.getDeclaredFields();
for (Field datePickerField : datePickerFields) {
if ("mDayPicker".equals(datePickerField.getName())
|| "mDaySpinner".equals(datePickerField
.getName())) {
datePickerField.setAccessible(true);
Object dayPicker = new Object();
dayPicker = datePickerField.get(datePicker);
((View) dayPicker).setVisibility(View.GONE);
}
}
}

}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值