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

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

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

нравится эта фотография, но необходим выбор диапазона

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

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

2 ответа

Решение

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

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

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

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

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

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

Попробуйте следующий код. Он покажет 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();
Другие вопросы по тегам