【发布时间】:2016-11-30 07:13:11
【问题描述】:
【问题讨论】:
-
请检查您的链接...它不起作用
标签: android android-datepicker
【问题讨论】:
标签: android android-datepicker
您可以使用以下库:https://github.com/lutvie72/RackMonthPicker。
new RackMonthPicker(this)
.setPositiveButton(new DateMonthDialogListener() {
@Override
public void onDateMonth(int month, int startDate, int endDate, int year, String monthLabel) {
}
})
.setNegativeButton(new OnCancelMonthDialogListener() {
@Override
public void onCancel(AlertDialog dialog) {
}
}).show();
【讨论】:
这是我认为最好的选择:https://github.com/DogusTeknoloji/compose-date-picker
年份选择器:
月份选择器:
ComposeCalendar(
minDate: Date? = null, // Set min selectable date
maxDate: Date? = null, // Set max selectable date
locale: Locale = Locale.getDefault(), // Set locale for localization
title: String = "", // Set title
listener: SelectDateListener, // Set Listener for selected date
showOnlyMonth: Boolean = false, // Display only month picker
showOnlyYear: Boolean = false, // Display only year picker
themeColor:Color = Color(0xFF614FF0), // Set picker color
negativeButtonTitle:String = "CANCEL", // Set negative button text
positiveButtonTitle:String = "OK" // Set positive button text
)
【讨论】:
最简单的方法,也许不是最纯粹的方法是扩展DatePickerDialog
所有你需要它来覆盖onYearSelected 回调,然后还有newInstance,因为如果你不这样做,它将产生DatePickerDialog,而不是新的YearOnlyPicker 对象。另外在newInstance 我已经添加了showYearPickerFirst(true) 电话,但它也可以从外面完成。然后,您可以将此对话框用作原始对话框。这是一种 hack,但这是在不修改库源代码的情况下实现这一目标的唯一方法
这是扩展 DatePickerDialog 的类
import com.wdullaer.materialdatetimepicker.date.DatePickerDialog;
public class YearOnlyPicker extends DatePickerDialog {
public static YearOnlyPicker newInstance(OnDateSetListener callBack, int year,
int monthOfYear,
int dayOfMonth) {
YearOnlyPicker ret = new YearOnlyPicker();
ret.showYearPickerFirst(true);
ret.initialize(callBack, year, monthOfYear, dayOfMonth);
return ret;
}
@Override
public void onYearSelected(int year) {
super.onYearSelected(year);
notifyOnDateListener();
dismiss();
}
}
【讨论】: