Выберите месяц и год (без дней) 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();