- CalendarView
- Получить выбранную дату
- Программно установить дату в CalendarView
- Установить минимальную и максимальную даты
- Дополнительное чтение
- Android studio работа с календарем
- Android | Создание приложения «Просмотр календаря»
- Android Calendar API
- Зачем!?
- Использовать недокументированное API — это ПЛОХО! Пнятненько?
- Android Calendar View
- Android Tutorial
- Android Calendar View
- Project Structure
CalendarView
Компонент CalendarView находится в разделе Widgets и выводит на экран календарь.
Описание всех атрибутов можно взять из документации.
В данном случае я выбрал цвет для выбранной недели (красный), цвет для номера недели (синий) и цвет для разделителей (зелёный). Спустя несколько лет обнаружил, что данные атрибуты теперь считаются устаревшими и игнорируются.
Выбранную дату можно отслеживать через метод setOnDateChangeListener():
Получить выбранную дату
В предыдущем примере мы получали выбранную дату через слушатель. Получить выбранную дату по щелчку кнопки по идее можно через метод getDate(). По крайней мере в документации говорится, что возвращается выбранная дата, но в реальности возвращается сегодняшняя дата. Оставил пример для демонстрации взаимодействия между CalendarView и объектом Calendar.
Добавим на экран активности кнопки и напишем код для её щелчка.
Программно установить дату в CalendarView
Сделаем обратную задачу — мы получили дату в виде объекта Calendar и хотим установить её в CalendarView. Не забывайте, что отсчёт месяцев идёт с 0.
Вместо вызова свойства calendarView.date можно вызвать метод setDate(), который имеет перегруженную версию с тремя параметрами.
Установить минимальную и максимальную даты
Компонент позволяет установить минимальную и максимальную даты через атрибуты minDate и maxDate, все остальные даты вне заданного промежутка будут недоступны.
Также можно установить эти даты программно через calendarView.minDate и calendarView.maxDate.
Дополнительное чтение
prolificinteractive/material-calendarview — по уверению автора, лучший вариант календаря, чем системный.
vikramkakkar/SublimePicker позволяет выбрать дату, время и повторяющие интервалы.
Источник
Android studio работа с календарем
Сегодня мы разберем такой простой и всем известный элемент пользовательского интерфейса Android платформы, как календарь. Чтобы интегрировать стандартный календарь в свое приложение, разработчики используют элемент под названием CalendarView, который появился аж с 3-й версии операционной системы. С помощью различных атрибутов, можно покрутить и настроить вид календаря под свой вкус, хотя настроек не так уж много. Например, присутствуют такие атрибуты:
— android:firstDayOfWeek — выставляем первый день недели;
— android:minDate — минимальная дата, которую будет показывать календарь, которая задается в формате mm/dd/yyyy (месяц, день, год);
— android:selectedWeekBackgroundColor — фоновый цвет для выбранной недели;
— android:showWeekNumber — здесь мы можем выставить, показывать номер недели или нет;
— android:weekNumberColor — цвет для номер недели;
— android:weekSeparatorLineColor — цвет линии, разделяющей недели и тп.
Мы не будем слишком кастомизировать свой календарь, а точнее вообще не будем, мы просто сделаем приложение, отображающее календарь и настроим ему слушателя изменений выбранной даты. Для каждого нажатия по любому дню в календаре мы, используя метод onSelectedDayChange (), будем показывать Toast сообщение с информацией о выбранной дате.
Создаем новый проект, выбираем Blank Activityи минимальную версию Android 4.0+.
В файле activity_main.xml создаем календарь:
Теперь переходим к файлу MainActivity.java. Здесь мы объявляем CalendarView, ссылаемся на наш календарь в файле интерфейса, задаем ему слушателя смены даты setOnDateChangeListener, а также используя метод onSelectedDayChange, при смене даты выводим Toast сообщение с выбранной датой:
Вот и все, на этом знакомство с системным Android календаря заканчивается, запускаем приложение и смотрим на результат:
Работает нормально, правда почему то в Google считают, что январь это 0-й месяц, поэтому май показывает как 4. Чтобы исправить, можно в настройках Toast сообщения, добавить к значению месяца единицу.
Источник
Android | Создание приложения «Просмотр календаря»
В этой статье показано, как создать приложение для Android для отображения Календаря с помощью CalendarView. Он также обеспечивает выбор текущей даты и отображение даты. Используется интерфейс setOnDateChangeListener, который предоставляет метод onSelectedDayChange.
- onSelectedDayChange: В этом методе мы получаем значения дней, месяцев и лет, которые выбрал пользователь.
Ниже приведены инструкции по созданию приложения-календаря для Android.
- Шаг 1: Создайте новый проект, и вы получите XML-файл макета и файл Java. Ваш экран будет выглядеть как на картинке ниже.
Шаг 2: Откройте ваш XML-файл и добавьте CalendarView и TextView. И назначьте идентификатор для TextView и CalendarView. После завершения этого процесса экран xml-файла выглядит следующим образом.
Источник
Android Calendar API
Зачем!?
Я столкнулся с такой задачей, когда писал приложение для составления своего университетского расписания. Удобно иметь свое расписание отдельно, да еще и стандартный календарь не поддерживает повторение событий через одну неделю, что необходимо для двухнедельного (чет./нечет.) расписания.
Идеей фикс была функция приложения, которая позволит “заполнить” введенным расписанием Android календарь. Плюсы очевидны: синхронизация с Google Calendar от google (простите за тавтологию), встроенные виджеты календаря (очень уж хорош этот виджет от HTC Sense) и гора виджетов от сторонних производителей, которые хоть покажут следующее событие, хоть загруженность недели, и т.д. Тут и понадобилась работа с календарем Android.
Использовать недокументированное API — это ПЛОХО! Пнятненько?
Неужели чтобы решить эту очевидную задачу необходимо использовать недокументированное API? Ответ – нет. Самый правильный метод использовать API Google Calendar, что я вам и советую сделать в своих разработках.
Но “правильный” метод налагает ряд ограничений:
• Нельзя использовать в отсутствии соединения с Интернет;
• Необходима синхронизация после заполнения календаря;
• Данные (а их не мало при заполнении целого года) идут до сервера а потом при синхронизации идут обратно, что, очевидно, увеличивает трафик в два раза.
По моему мнению, намного удобней использовать офлайн версию календаря, которую при любом удобном случае можно синхронизировать с гуглокалендарем. К сожалению google не позаботился о разработчиках под Android и не опубликовал официального API, но к нашей радости исходные коды Android открыты и умные люди уже давно нашли волшебные URI контент провайдеров.
Источник
Android Calendar View
Android Tutorial
In this tutorial, we’ll be discussing the Calendar Widget using the CalendarView class in our Android Application.
Android Calendar View
As the name suggests, a Calendar View is used to display and select dates of the Calendar.
To add a CalendarView in the XML Layout do the following:
This is how it looks in the Layout Design editor :
When you’ll run the above application on your device, it’ll show the current date. By default, the Calendar shows the Jan 1, 1970, date.
android:maxDate and android:minDate are used to set a custom range on the calendar. The dates specified are of the format MM/dd/yyyy.
To do the same in Java we use setMaxDate() and setMinDate() methods passing the long instance. The getters methods are available for the same.
To set the current date we do setDate(long date) on the CalendarView instance.
The setDate method has another form: setDate(long date, boolean animate, boolean center) .
By default the second and third parameters are true. When you select a new date it animates to it.
To change the date and week text style we use the attributes:
android:dateTextAppearance and android:weekTextAppearance or their equivalent setters in Java.
The CalendarView consists of the following listener:
This gets triggered whenever the date is changed by the user.
In the following section, we’ll create an android application with a custom theme and add a custom range on the CalendarView along with showing the difference between animation and non-animation date changes.
Project Structure
In the styles.xml file add the following three styles:
android:textColorPrimary by default is white. This color is set on the month date and the left and right indicators.
The code for the activity_main.xml is given below:
We’ve added all the custom styles in the layout above.
The three Buttons are chained in the Constraint Layout.
The code for the MainActivity.java is given below:
calendar.getActualMaximum(Calendar.DATE) gets the end of the month for the current date.
We’ve used SimpleDateFormat to convert the dates into a custom format.
The output of the application in action is given below:
In the first case, we animate to another date with animation. In the last case, the custom range shows only the July Month. The indicators are disabled.
This brings an end to this tutorial. You can download the project from the link below:
Источник