Выберите диапазон месяца и года (без дней) Android

может быть кто-то знает компонент (представление) для выбора диапазона? нравится:

Select from:      select to:
month+year        month+year

понравилось это фото, но нужно выбрать диапазон

Я нашел представления datePicker на gitHub только с диапазоном выбора дней: github

но в этом компоненте рисует даты :(


person Профиль заблокирован    schedule 19.05.2017    source источник
comment
stackoverflow.com/ вопросы/21321789/ посмотреть здесь   -  person Finn von Holten    schedule 19.05.2017
comment
Возможный дубликат изменения Android DatePicker только на месяц и год   -  person Finn von Holten    schedule 19.05.2017
comment
не дублируется. Все это ответы не о выборе RANGE   -  person Профиль заблокирован    schedule 19.05.2017
comment
проверьте этот ответ stackoverflow.com/a/31653048/8905812   -  person Devinder Jhinjer    schedule 10.11.2020


Ответы (2)


См. этот вопрос: Android DatePicker меняется только на месяц и год

Я бы написал это в комментариях, но у меня нет на это разрешения.

Вариантов больше, чем в ответе Пратик Кейт.

edit: я знаю, что эти решения не предлагают выбор диапазона, но я думаю, что это можно легко решить, используя два средства выбора - «от-до».

Смотрите скриншоты, например. в этом проекте: Материал выбора даты и времени с выбором диапазона

Я думаю, что это может выглядеть довольно хорошо. Я могу представить, что многие пользователи будут сбиты с толку, когда их попросят выбрать диапазон, используя только одно средство выбора (необходимо использовать какое-то длительное нажатие или событие перетаскивания?).

person Jan Imrich    schedule 19.05.2017
comment
да, я создал ранее этот DatePicker. Этот компонент не имеет функционала выбора диапазона - person Профиль заблокирован; 19.05.2017
comment
да. Ты прав. Я думаю сделать диалог с 2 DatePicker без выбора DATE - person Профиль заблокирован; 19.05.2017

Попробуйте следующий код. Он покажет DatePicker только с годом и месяцем (без дня)

private DatePickerDialog createDialogWithoutDateField() {
    DatePickerDialog dpd = new DatePickerDialog(this, null, 2014, 1, 24);
    try {
        java.lang.reflect.Field[] datePickerDialogFields = dpd.getClass().getDeclaredFields();
        for (java.lang.reflect.Field datePickerDialogField : datePickerDialogFields) {
            if (datePickerDialogField.getName().equals("mDatePicker")) {
                datePickerDialogField.setAccessible(true);
                DatePicker datePicker = (DatePicker) datePickerDialogField.get(dpd);
                java.lang.reflect.Field[] datePickerFields = datePickerDialogField.getType().getDeclaredFields();
                for (java.lang.reflect.Field datePickerField : datePickerFields) {
                    Log.i("test", datePickerField.getName());
                    if ("mDaySpinner".equals(datePickerField.getName())) {
                        datePickerField.setAccessible(true);
                        Object dayPicker = datePickerField.get(datePicker);
                        ((View) dayPicker).setVisibility(View.GONE);
                    }
                }
            }
        }
    } 
    catch (Exception ex) {
    }
    return dpd;
}

Этот метод возвращает диалог выбора даты. Итак, в метод onClick вашей кнопки добавьте следующий код для отображения диалогового окна.

createDialogWithoutDateField().show();
person Pratik Kate    schedule 19.05.2017
comment
Вы также можете проверить это: github.com/code-troopers/android-betterpickers - person Pratik Kate; 19.05.2017
comment
для ответа: этот код для выбора только месяца + года, но не диапазона. для ответа Кейт: хорошо, но нет диапазонов месяцев и лет :( - person Профиль заблокирован; 19.05.2017