Создание календаря для android

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

Сегодня мы разберем такой простой и всем известный элемент пользовательского интерфейса Android платформы, как календарь. Чтобы интегрировать стандартный календарь в свое приложение, разработчики используют элемент под названием CalendarView, который появился аж с 3-й версии операционной системы. С помощью различных атрибутов, можно покрутить и настроить вид календаря под свой вкус, хотя настроек не так уж много. Например, присутствуют такие атрибуты:

Читайте также:  Ui info suite stardew valley андроид

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.

  1. onSelectedDayChange: В этом методе мы получаем значения дней, месяцев и лет, которые выбрал пользователь.

Ниже приведены инструкции по созданию приложения-календаря для Android.

    Шаг 1: Создайте новый проект, и вы получите XML-файл макета и файл Java. Ваш экран будет выглядеть как на картинке ниже.

Читайте также:  Найти картинку по картинке андроид

Шаг 2: Откройте ваш XML-файл и добавьте CalendarView и TextView. И назначьте идентификатор для TextView и CalendarView. После завершения этого процесса экран xml-файла выглядит следующим образом.

  • Шаг 3: Теперь откройте Java-файл активности и определите переменную типа CalendarView и TextView, а также используйте findViewById () для получения Calendarview и textview.
  • Шаг 4: Теперь добавьте интерфейс setOnDateChangeListener в объект CalendarView, который предоставляет метод setOnDateChangeListener. В этом методе мы получаем даты (дни, месяцы, годы) и устанавливаем даты в TextView для отображения.
  • Шаг 5: Теперь запустите приложение и установите текущую дату, которая будет отображаться в верхней части экрана.

    Источник

    Android Calendar API

    Зачем!?

    Я столкнулся с такой задачей, когда писал приложение для составления своего университетского расписания. Удобно иметь свое расписание отдельно, да еще и стандартный календарь не поддерживает повторение событий через одну неделю, что необходимо для двухнедельного (чет./нечет.) расписания.
    Идеей фикс была функция приложения, которая позволит “заполнить” введенным расписанием Android календарь. Плюсы очевидны: синхронизация с Google Calendar от google (простите за тавтологию), встроенные виджеты календаря (очень уж хорош этот виджет от HTC Sense) и гора виджетов от сторонних производителей, которые хоть покажут следующее событие, хоть загруженность недели, и т.д. Тут и понадобилась работа с календарем Android.

    Использовать недокументированное API — это ПЛОХО! Пнятненько?


    Неужели чтобы решить эту очевидную задачу необходимо использовать недокументированное API? Ответ – нет. Самый правильный метод использовать API Google Calendar, что я вам и советую сделать в своих разработках.

    Но “правильный” метод налагает ряд ограничений:
    • Нельзя использовать в отсутствии соединения с Интернет;
    • Необходима синхронизация после заполнения календаря;
    • Данные (а их не мало при заполнении целого года) идут до сервера а потом при синхронизации идут обратно, что, очевидно, увеличивает трафик в два раза.

    По моему мнению, намного удобней использовать офлайн версию календаря, которую при любом удобном случае можно синхронизировать с гуглокалендарем. К сожалению google не позаботился о разработчиках под Android и не опубликовал официального API, но к нашей радости исходные коды Android открыты и умные люди уже давно нашли волшебные URI контент провайдеров.

    Читайте также:  Android studio второй активити

    Источник

    Написание календаря на Android

    Здравствуйте, очень нужна ваша помощь: для приложения нужен календарь на пол экрана, желательно написанный с нуля, а не встроенный. При заходе в приложение, календарь должен показывать текущий месяц с подсвеченной текущей датой, должна быть возможность либо «прокручиванием», либо другими кнопками менять месяц. Также можно выбирать даты нажатием (с соответствующими визуальными эффектами). На андроид пишу первый раз, поэтому имеется несколько вопросов:
    1) сам календарь думала реализовать как набор 42 кнопки (6 рядов по 7 штук, в одной ряду дни от пнд до воскресенья) на TableLayout, не знаю, хороший ли это вариант, может кто-то посоветует лучше?
    2) при нажатии на кнопку с датой она должна подсвечиваться и оставаться другого цвета после нажатия. Нашла про селектор, пробовала разные комбинации со state_pressd, state_selected и т.д., но никак не получается этого добиться. Когда нажимаешь, она меняет цвет, но после того как отпустишь, возвращается к исходному. В итоге в обработчик нажатия кнопки запихнула функцию SetActivated(true), с которой в селекторе с state_activated всё нормально, но получается, что при нажатии на другую кнопку надо сбрасывать Activated у предыдущей, а как это реализовать, не знаю. И вообще, стоит ли использовать setActivated?
    3) есть ли способ создать 42 кнопки программно? И как лучше организовать присвоение кнопкам чисел месяца?

    Очень надеюсь на Ваше небезразличие.

    Android Studio, по поводу календаря?
    Всем доброго времени суток) Скажите пожалуйста люди, как в Android Studio сделать календарь? Но.

    Написание календаря для любого года
    #include using namespace std; bool vis(int); int day_in_year(int); int.

    XE5 Android, как вывести список событий из календаря?
    Добрый день, форумчане! На основе данного примера.

    Написание программ под Android
    Допустим у меня есть консольное приложение win32. Можно его как-либо перенести на Android.

    Источник

  • Оцените статью