Android - DatePickerDialog 標題與設定年份最大最小值
Android - DatePickerDialog 標題與設定年份最大最小值
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.getDatePicker().setMinDate(minDate); dialog.getDatePicker().setMaxDate(maxDate);
隱藏線條與變更為民國年
public void changeDividerColor() {
try {
Class internalRID = Class.forName("com.android.internal.R$id");
Field month = internalRID.getField("month");
Field day = internalRID.getField("day");
Field year = internalRID.getField("year");
NumberPicker npMonth = (NumberPicker) findViewById(month.getInt(null));
NumberPicker npDay = (NumberPicker) findViewById(day.getInt(null));
NumberPicker npYear = (NumberPicker) findViewById(year.getInt(null));
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
npYear.setFormatter(new NumberPicker.Formatter() {
@Override
public String format(int value) {
int chinese_year = value-1911;
return "民國"+String.valueOf(chinese_year)+"年";
}
});
}
setDividerColor(npMonth);
setDividerColor(npDay);
setDividerColor(npYear);
} catch (Exception ignored) {
}
}
private void setDividerColor(NumberPicker numberPicker) {
Field[] numberPickerFields = NumberPicker.class.getDeclaredFields();
for (Field field : numberPickerFields) {
if (field.getName().equals("mSelectionDivider")) {
field.setAccessible(true);
try {
field.set(numberPicker, ContextCompat.getDrawable(getContext(),
R.drawable.bg_datepicker_divider));
} catch (Exception ignored) {
}
break;
}
}
}