Подтвердить что ты не робот

Просмотр календаря Android

Я новичок в разработке Android, и я ищу способ включения календаря в приложение для Android, но я очень плохо себя чувствую при работе с Google.

  • Есть ли способ использовать вид календаря по умолчанию в моем приложении? (было бы идеальным, так как пользовательский интерфейс был бы знаком)

  • Невозможно выполнить встроенную опцию, есть ли там хорошие библиотеки с календарным элементом управления, который я мог бы использовать?

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

4b9b3361

Ответ 1

Я написал библиотеку Caldroid (https://github.com/roomorama/Caldroid), которая проста в настройке и имеет множество функций, таких как минимальная/минимальная дата, отключенные даты, выбирать диапазон дат, прокручивать, чтобы изменить месяц, полностью локализовать, правильно поддерживать вращение и т.д. Легко настроить внешний вид. Просто чтобы поделиться, если кто-то может найти это полезным:)

Ответ 2

Я попробовал android-CalendarView, Caldroid и позже переключился на android-times-square, который имеет такие улучшения:

  • Гораздо более быстрое переключение на другие месяцы из-за вертикальной прокрутки (без разбивки на страницы, которое медленно реагирует на Caldroid)
  • Индикаторы, выделенные даты (по крайней мере, в эта вилка для android)
  • версия iOS доступна с таким же внешним видом.
  • выглядит чище, чем версия Android, потому что месяцы четко разделены

    enter image description here

Как и Caldroid, он является частью продуктивного приложения.

Ответ 3

AFAIK, нет другого способа, кроме как реализовать свой собственный календарь. Итак... что вам нужно сделать, это использовать GridLayout с 7 столбцами и создать пользовательский BaseAdapter для правильного отображения данных.

Ответ 4

Android теперь предоставляет три способа включения календарей в ваше приложение.

  1. Просмотр календаря для выбора даты и тому подобное.

  2. Доступ к провайдеру календаря позволяет добавлять и удалять события из календаря ОС.

  3. Календарные намерения позволяют вам предоставлять календарь без необходимости получения дополнительных разрешений или работы с базами данных.

Ответ 5

это возможно, но не легко. http://jimblackler.net/blog/?p=151&cpage=2#comment-52767

а также

private void InsertAppointment(String strTitle, String strDescription, String strEventLocation, long StartDateTime, long EndDateTime, boolean bAllDay, boolean bHasAlarm){
    int tAllday;
    int tHasAlarm;
    if (bAllDay = true){
        tAllday = 1;
    }
    else
        tAllday = 0;
    if (bHasAlarm = true){
        tHasAlarm = 1;
    }
    else
        tHasAlarm = 0;

    ContentValues event = new ContentValues();
    // Calendar in which you want to add Evenet
    event.put("calendar_id", CalId);                //CalId                                  
    event.put("title", strTitle);                                                           
    event.put("description", strDescription);                                  
    event.put("eventLocation", strEventLocation);                                                   
    event.put("dtstart", StartDateTime);                                                          
    event.put("dtend", EndDateTime );                  
    event.put("allDay", 0);                     
    event.put("hasAlarm", 0);                                                                  
    Uri eventsUri = Uri.parse("content://com.android.calendar/events");    
    // event is added
    getContentResolver().insert(eventsUri, event);

}

быстрый поиск по content://com.android.calendar/calendars поможет вам начать работу. но я еще не закончил свою, пока просто не могу получить данные. но это возможно

Ответ 6

Эта библиотека кажется действительно приятной и с более современным интерфейсом (Material Design):

https://github.com/prolificinteractive/material-calendarview

Вам просто нужно импортировать его с помощью gradle:

compile 'com.prolificinteractive:material-calendarview:1.4.0'

И добавьте его в свой макет:

<com.prolificinteractive.materialcalendarview.MaterialCalendarView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/calendarView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:mcv_showOtherDates="all"
app:mcv_selectionColor="#00F"
/>

введите описание изображения здесь

Ответ 7

Вы можете использовать сборщик календарей android, который я создал, это проект с открытым исходным кодом, и вы можете легко добавить его в свой проект.

https://github.com/sancarbar/Android-Calendar-Picker

Ответ 8

Вы можете использовать MFCalendarView: https://github.com/MustafaFerhan/MFCalendarView

установить несколько событий;

ArrayList<String> eventDays = new ArrayList<String>();
eventDays.add("2014-02-25");
eventDays.add(Util.getCurrentDate());

mf.setEvents(eventDays);

и обработчик с прослушивателем MFCalendarView:

mf = (MFCalendarView) findViewById(R.id.mFCalendarView);
mf.setOnCalendarViewListener(new onMFCalendarViewListener() {

    @Override
        public void onDisplayedMonthChanged(int month, int year, String monthStr) {
            }

            @Override
            public void onDateChanged(String date) {
            }
    });

Это очень просто.