2016-11-30 3 views
1

Я использую этот link для выбора даты, я хочу показать только месяц в подборщике даты. Как я могу достичь этого?Show Only Month Picker in MaterialDateTimePicker

, а также знать

  • как показать только год Picker.
+0

пожалуйста, проверьте ссылку ... ее не работает –

+0

https://github.com/wdullaer/MaterialDateTimePicker - Пожалуйста, проверьте этот – kavie

ответ

0

простой способ, возможно, не т.е чистейшей один является расширение 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(); 

     } 
    } 
+0

Привет, Как насчет только месяц зрения – kavie

+0

вы имеете в виду вертушку с именами только месяцев? в MaterialDateTimePicker нет такого представления - вам нужно реализовать его самостоятельно - вы можете основываться на Year View, так как он будет работать так же, но я думаю, что будет проще реализовать его с нуля, так как это просто sppinner view – Filipkowicz

+0

, может быть, этот будет отвечать вашим потребностям: https://github.com/resengupta/Month-Year-Date-Picker – Filipkowicz

0

Вы можете использовать следующую LIB: https://github.com/lutvie72/RackMonthPicker.

enter image description here

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

Самая важная проблема с этой библиотекой заключается в том, что по умолчанию она показывает hardcoded 2017 год. –

+0

ничего себе это безумие – lidox

+0

Хотя автор исправил его, но его еще не выпустили. Вы можете найти снимок 1.5.1 с исправленной проблемой. –