Android 仅在MaterialDateTimePicker中显示月份选择器
我把它用于日期选择器,我只想在日期选择器中显示月份。我怎样才能做到这一点 也知道Android 仅在MaterialDateTimePicker中显示月份选择器,android,android-datepicker,Android,Android Datepicker,我把它用于日期选择器,我只想在日期选择器中显示月份。我怎样才能做到这一点 也知道 如何只显示年份选择器 最简单的方法,也许不是最纯粹的方法是扩展DatePickerDialog 您需要它来覆盖onYearSelected回调,然后覆盖newInstance,因为如果不这样做,它将生成DatePickerDialog,而不是新的YearOnlyPicker对象。另外,在newInstance中,我添加了showYearPickerFirst(true)调用,但也可以从外部完成。然后您可以将此对话
- 如何只显示年份选择器
- 最简单的方法,也许不是最纯粹的方法是扩展
DatePickerDialog
您需要它来覆盖onYearSelected
回调,然后覆盖newInstance
,因为如果不这样做,它将生成DatePickerDialog
,而不是新的YearOnlyPicker
对象。另外,在newInstance
中,我添加了showYearPickerFirst(true)
调用,但也可以从外部完成。然后您可以将此对话框用作原始对话框。这是一种黑客行为,但这是在不修改库源代码的情况下实现这一点的唯一方法
下面是扩展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();
}
}
您可以使用以下库:
请检查您的链接。。。它不起作用-请检查此项HI,对于仅月份视图如何您指的是仅包含月份名称的微调器?MaterialDateTimePicker中没有这样的视图-您需要自己实现它-您可以基于Year view,因为它的工作原理相同,但我认为从头开始实现它会更容易,因为它很简单。内部视图可能这一个会满足您的需要:此库最关键的问题是,它逐年显示硬编码的2017默认。虽然作者已经修复了它,但它仍然没有发布。您可以找到问题已修复的快照1.5.1。
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();