Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 仅在MaterialDateTimePicker中显示月份选择器_Android_Android Datepicker - Fatal编程技术网

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();