Giter Site home page Giter Site logo

alamkanak / android-week-view Goto Github PK

View Code? Open in Web Editor NEW
3.4K 151.0 1.2K 814 KB

Android Week View is an android library to display calendars (week view or day view) within the app. It supports custom styling.

License: Apache License 2.0

Java 100.00%
android custom-view calendar calendar-view

android-week-view's Introduction

Android Week View

Gitter chat

Android Week View is an android library to display calendars (week view or day view) within the app. It supports custom styling.

Features

  • Week view calendar
  • Day view calendar
  • Custom styling
  • Horizontal and vertical scrolling
  • Infinite horizontal scrolling
  • Live preview of custom styling in xml preview window

Who uses it

Usage

  1. Import the library into your project.
  • Grab via maven

    <dependency>
      <groupId>com.github.alamkanak</groupId>
      <artifactId>android-week-view</artifactId>
      <version>1.2.6</version>
      <type>aar</type>
    </dependency>
  • Grab via gradle

    compile 'com.github.alamkanak:android-week-view:1.2.6'
  1. Add WeekView in your xml layout.

    <com.alamkanak.weekview.WeekView
            android:id="@+id/weekView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:eventTextColor="@android:color/white"
            app:textSize="12sp"
            app:hourHeight="60dp"
            app:headerColumnPadding="8dp"
            app:headerColumnTextColor="#8f000000"
            app:headerRowPadding="12dp"
            app:columnGap="8dp"
            app:noOfVisibleDays="3"
            app:headerRowBackgroundColor="#ffefefef"
            app:dayBackgroundColor="#05000000"
            app:todayBackgroundColor="#1848adff"
            app:headerColumnBackground="#ffffffff"/>
  2. Write the following code in your java file.

    // Get a reference for the week view in the layout.
    mWeekView = (WeekView) findViewById(R.id.weekView);
    
    // Set an action when any event is clicked.
    mWeekView.setOnEventClickListener(mEventClickListener);
    
    // The week view has infinite scrolling horizontally. We have to provide the events of a
    // month every time the month changes on the week view.
    mWeekView.setMonthChangeListener(mMonthChangeListener);
    
    // Set long press listener for events.
    mWeekView.setEventLongPressListener(mEventLongPressListener);
  3. Implement WeekView.MonthChangeListener, WeekView.EventClickListener, WeekView.EventLongPressListener according to your need.

  4. Provide the events for the WeekView in WeekView.MonthChangeListener.onMonthChange() callback. Please remember that the calendar pre-loads events of three consecutive months to enable lag-free scrolling.

    MonthLoader.MonthChangeListener mMonthChangeListener = new MonthLoader.MonthChangeListener() {
        @Override
        public List<WeekViewEvent> onMonthChange(int newYear, int newMonth) {
            // Populate the week view with some events.
            List<WeekViewEvent> events = getEvents(newYear, newMonth);
            return events;
        }
    };

Customization

You can customize the look of the WeekView in xml. Use the following attributes in xml. All these attributes also have getters and setters to enable you to change the style dynamically.

  • allDayEventHeight
  • columnGap
  • dayBackgroundColor
  • dayNameLength
  • eventMarginVertical
  • eventPadding
  • eventTextColor
  • eventTextSize
  • firstDayOfWeek
  • headerColumnBackground
  • headerColumnPadding
  • headerColumnTextColor
  • headerRowBackgroundColor
  • headerRowPadding
  • hourHeight
  • hourSeparatorColor
  • hourSeparatorHeight
  • noOfVisibleDays
  • overlappingEventGap
  • textSize
  • todayBackgroundColor
  • todayHeaderTextColor
  • showDistinctPastFutureColor
  • futureBackgroundColor
  • pastBackgroundColor
  • showDistinctWeekendColor
  • futureWeekendBackgroundColor
  • pastWeekendBackgroundColor
  • showNowLine
  • nowLineColor
  • nowLineThickness
  • scrollDuration

Interfaces

Use the following interfaces according to your need.

  • mWeekView.setWeekViewLoader() to provide events to the calendar
  • mWeekView.setMonthChangeListener() to provide events to the calendar by months
  • mWeekView.setOnEventClickListener() to get a callback when an event is clicked
  • mWeekView.setEventLongPressListener() to get a callback when an event is long pressed
  • mWeekView.setEmptyViewClickListener() to get a callback when any empty space is clicked
  • mWeekView.setEmptyViewLongPressListener() to get a callback when any empty space is long pressed
  • mWeekView.setDateTimeInterpreter() to set your own labels for the calendar header row and header column
  • mWeekView.setScrollListener() to get an event every time the first visible day has changed

Sample

There is also a sample app to get you started.

To do

  • Add event touch feedback selector
  • Show events that expand multiple days properly

Changelog

Version 1.2.6

  • Add empty view click listener
  • Fix padding bug
  • Fix bug when setting colors of different components
  • Add ability to turn off fling gesture
  • Add example of how to load events asynchronously in the sample app

Version 1.2.5

  • Add support for using subclasses of WeekViewEvent
  • Fix scroll animation
  • Add support for semi-transparent header colors

Version 1.2.4

  • NOTE: If you are using WeekView.MonthChangeListener, make sure to change it into MonthLoader.MonthChangeListener
  • Add support to have loaders other than MonthViewLoader
  • Add pinch to zoom support
  • Add support for location
  • Add ability to have different colors for past, future, weekend days
  • Add support for "now" line

Version 1.2.3

  • Get callbacks when scrolling horizontally
  • goToHour and goToDate methods has been fixed
  • Use getFirstVisibleHour method to get the first visible hour in the week view

Version 1.2.1

  • Better scrolling added
  • Get callbacks when empty view is tapped/long pressed
  • Control the speed of scrolling
  • Support for multiple language added
  • Ability to set your own interpreter for header row and column added

Version 1.1.7

  • You can now dynamically scroll to an hour of your preference.

Version 1.1.6

  • Added support for events that expands to multiple days

Version 1.1.5

  • A bug related to overlapping events fixed
  • You can now programmatically get first and last visible day in the week view

Version 1.1.4

  • Small bug fixed

Version 1.1.3

  • Margins support added for overlapping events

Version 1.1.2

  • Small bugs fixed
  • Hour separator inconsistency fixed

Version 1.1.1

  • Overlapping event bug fixed

Version 1.1.0

  • Added support for overlapping events

License

Copyright 2014 Raquib-ul-Alam

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

android-week-view's People

Contributors

alamkanak avatar entropitor avatar glennschmidt avatar jhoobergs avatar kimpark89 avatar m4droid avatar psamim avatar raplider avatar subbuboyapati avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-week-view's Issues

Draw all the event in centeral vertical in the same day in same hour

Hi all,
I am facing the issue to draw the event in central vertical. What's happening now.
Suppose there two event on same day and same hour with different minutes. Then first event little bit -x position and another one is little bit +x position. I tried to change the same width and left value but not success.

// Calculate left and right position for all the events.

 int maxRowCount = columns.get(0).size();
    for (int i = 0; i < maxRowCount; i++) {
        // Set the left and right values of the event.
        float j = 0;
        for (List<EventRect> column : columns) {
            if (column.size() >= i+1) {
                EventRect eventRect = column.get(i);
                eventRect.width = 1f / columns.size();
                eventRect.left = j / columns.size();
                Log.e("WeekView","Width : "+eventRect.width);
                Log.e("WeekView","left : "+eventRect.left);
                eventRect.width =     eventRect.left ;
                eventRect.top = eventRect.event.getStartTime().get(Calendar.HOUR_OF_DAY) * 60 + eventRect.event.getStartTime().get(Calendar.MINUTE);
                eventRect.bottom = eventRect.event.getEndTime().get(Calendar.HOUR_OF_DAY) * 60 + eventRect.event.getEndTime().get(Calendar.MINUTE);;
                mEventRects.add(eventRect);
            }
            j++;
        }
    } 

if anyone have idea about this. Please help me.

Thanks in advance

Question about onMonthChange

How often does onMonthChange get called ? I have the weekview widget in a fragment, onMonthChange seem to get called quite a bit (I was expecting it to get called just once during fragment creation), every time it gets called I have to fetch events from the server, which is quite an overhead.

Re: Question about setting weekview event

Hello,

This is with reference to the issue I opened earlier, with the same title. I cannot reopen the issue, because it was not closed by me. Hence opening a new issue:

Question :
Is there a way to set the list of events in WeekView other than returning List of WeekViewEvents in onMonthChange() ?

Your solution:

Currently the week view does not provide a ready-made solution for async event loading. But there is a simple hack. Use the following code to achieve what you want.

@OverRide
public List onMonthChange(int newYear, int newMonth) {
// Populate the week view with some events.
List events = new ArrayList();

// Fetch events for the date user selected.
fetchEventsinBackground();

}

// Callback when fetchEvents finishes.
public void setEventList(Activity activity, final List eventModels) {

// Hide the progress dialog.
if(mProgressDialog != null && mProgressDialog.isShowing()) {
    mProgressDialog.dismiss();
}

// Refresh the week view.
activity.runOnUiThread(new Runnable() {
    @Override
    public void run() {
        // Store the returned events in a global variable for later use.
        mEventModels = eventModels;

        // This line will trigger the method 'onMonthChange()' again.
        mWeekView.notifyDatasetChanged();
    }
});

}

@OverRide
public List onMonthChange(int year, int month) {
// TODO Be sure to check if the variables year and month equals the year and month of the events of mEventModels.
return getWeekViewEventsFromEventModels(mEventModels);
}

Thank you for the response, however it did not work for me.

Java doesn't support 2 methods with same signature, so I can't have something like this in the same class:

@OverRide
public List onMonthChange(int year, int month) {
// TODO Be sure to check if the variables year and month equals the year and month of the events of mEventModels.
return getWeekViewEventsFromEventModels(mEventModels);
}
@OverRide
public List onMonthChange(int newYear, int newMonth) {
// Populate the week view with some events.
List events = new ArrayList();

// Fetch events for the date user selected.
fetchEventsinBackground();

}
If mWeekView.notifyDatasetChanged(); triggers onMonthChange() again, then it results in an infinite loop with fetchEventsinBackground() being called again & again!

Is there a better way out ? Thanks for all the help!

Set optional range for events prefetch instead of 3 months

For the applications where the main view is a day view the week prefetch is enough. 3 months is too big range for this kind of applications and reduce the application responsiveness for on the activity launch. We need to have a way to configure prefetch range.

Problem with mWeekView.getFirstVisibleDay()

Hi,
When i try to use mWeekView.getFirstVisibleDay(), I've a problem. When I'm in 3 days view, mWeekView.getFirstVisibleDay() does not always return the correct day. Sometimes it returns the previous day.

I made a sample that returns the first date displayed by the view and this is the result :

  1. mWeekView.getFirstVisibleDay() returns the good day
    screenshot_2014-11-04-09-15-52
  2. mWeekView.getFirstVisibleDay() returns a bad day
    screenshot_2014-11-04-09-16-18

Do you have an idea to solve this problem?

Thank's for your help !

Start Calendar from particular hour

Hi,
Can we display the calendar from particular hour in week view like from 6:00 AM to 8:00 PM. If anyone have idea please reply.Thanks in advance...

L/R Swipe doesn't work with Android-Week-View as Fragment in iosched SlidingTab

Hi,

I implement your framwork as a Fragment in iosched SlidingTabLayout. In this szenario the left-right swipe doesn't work correct. If I swipe to fast the SlidingTab will swipe. I only can swipe the Week-View if I swipe on the View a few millimeters. Is there any workaround to get the Swipe work again or can you fix this issue?

Best Regards
R0ns3n

How can I do to load 4 months of events?

Hello, first of all thank you for this library, it's amazing! but I have a few questions:

I have loaded events of every month of the year. I know that your library only allow you tu load 3 months at a time. But if I'm showing December, January and February, how can I do to show January, February and March when you scroll forward?

This is my code and it doesn't work:

public List onMonthChange(int newYear, int newMonth)
{
// Populate the week view with some events.
List events = new ArrayList<>();

    for(Cita c : citas)
    {
        Calendar startTime = c.getFecha();

        Log.d("DEBUG: ","onMonthChanged: newMonth = "+newMonth+", startTime.MONTH = "+String.valueOf(startTime.MONTH));
        if(newMonth == startTime.MONTH)
        {
            Calendar endTime = (Calendar) startTime.clone();
            endTime.add(Calendar.MINUTE, c.getIntervalo());
            WeekViewEvent event = new WeekViewEvent(1, getEventTitle(c), startTime, endTime);
            switch(c.getIdEstado())
            {
                case 0:event.setColor(getResources().getColor(R.color.event_color_01));break;
                case 1:event.setColor(getResources().getColor(R.color.event_color_02));break;
                case 3:event.setColor(getResources().getColor(R.color.event_color_03));break;
                case 5:event.setColor(getResources().getColor(R.color.event_color_04));break;
                case 8:event.setColor(getResources().getColor(R.color.event_color_05));break;
                default:event.setColor(getResources().getColor(R.color.event_color_01));break;
            }
            events.add(event);
        }
    }
    return events;
}

List of citas is loaded with events for the whole year, but if I scroll to march, no event is shown.

Different background for past and future days

To easily see you are viewing the past.

In combination with #48 it should probably also divide today's view in partially "history" and partially "future". So the background before the current hour marker should be the background for past days. And after should be the background for today's view / background for future days.

How to add it to android studio

I know its a dumb question and I'm looking at internet.
But im getting a hard time finding out how to add it in my project with android studio.
If someone could explain, it would be good to put it in one wiki page, for the next ones.
Thanks in advanced.

Change month changed event to specific range

I want to use this library, but can't quite yet because I only have one day (at most one week) of event data available. I should be able to supply only days within the context of the view.

getFirstVisibleDay sometimes returns wrong day.

I've got a button wich calls goToDate() and the date is calculated starting from getFirstVisibleDay(). The problem is that getFirstVisibleDay() sometimes returns a Calendar instance off by one day, which causes the calculation to fail.

Zoom on weekView

Hi,

I'd like to know if there is a way to zoom/pinch on a week view ?
And is it possible to display only days from Monday to Friday ?

Thank you

[TODO] Month view?

Do you think is possible to add the Month view too? It would be nice to have it as a library, since catching from the android source code is quite a pain... ๐Ÿ‘

setDateTimeInterpreter with custom views...

It would be really awesome to have the possibility to set a DateTimeInterpreter (maybe called a DateTimeViewInterpreter) which could return the view to be displayed in the header.

I want that because I want something like the Google Calendar app above my day columns that show me "Wed 7", but on two lines and "7" a lot bigger than "Wed".

When one event contains another events

When

event1.startTime < event2.startTime && event1.endTime > event2.endTime

the day view would paint them together.

     /**
     * Checks if two events overlap.
     * @param event1 The first event.
     * @param event2 The second event.
     * @return true if the events overlap.
     */
    private boolean isEventsCollide(WeekViewEvent event1, WeekViewEvent event2) {
        long start1 = event1.getStartTime().getTimeInMillis();
        long end1 = event1.getEndTime().getTimeInMillis();
        long start2 = event2.getStartTime().getTimeInMillis();
        long end2 = event2.getEndTime().getTimeInMillis();
        return (start1 >= start2 && start1 <= end2) || (end1 >= start2 && end1 <= end2);
    }

this may need to return

       return !((start1 >= end2) || (end1 <= start2));

Support multi language and different time format

Hi, I need to modify labels that display the days of the week and the time of the day, so i could choose a different language for the name of the days and a different pattern for day and time (24 hours format without am/pm marker, day before month format, etc). Is it possible to do that?

Display only one week

Is there any easy way to make it display only one week, without the dates.
Like I need the view to show monday - sunday, like I need to make a plan for every week.
I dont know if im very clear.
Thanks

How to get the current day displayed in the view ?

Hi.
First, thank you for the implementation of this library. It's a good job !

I would like to use it to display and add events. To do this, I need to know the day shown by the view to add an new event. But at this moment, I can't find a callback method in the library that lets me know the day displayed. Is this implemented or not?

I tried to make my own implementation of the following way:

private void drawHeaderRowAndEvents(Canvas canvas) {
...
// Iterate through each day.
        for (int dayNumber = leftDaysWithGaps + 1;
             dayNumber <= leftDaysWithGaps + mNumberOfVisibleDays + 1;
             dayNumber++) {

            // Check if the day is today.
            day = (Calendar) mToday.clone();
            day.add(Calendar.DATE, dayNumber - 1);
            boolean sameDay = isSameDay(day, mToday);

            // Return the current date displayed
            if (dayNumber == leftDaysWithGaps + 1 && !mFetchedDate.equals(day)) {
                mFetchedDate = (Calendar) day.clone();
                // Callback method like "onMonthChange()" to know the current day displayed
                mDayChangeListener.onDayChange(mFetchedDate);
            }
...
}

In short, my question is : The library implements a way to know the day displayed ? If so, can you explain me how ? If not, my solution is it right ?

Thank's for your help !

Question about setting WeekViewEvent

Is there a way to set the list of events in WeekView other than returning List of WeekViewEvents in onMonthChange() ?

Here is my problem:

Whenever month changes on the weekview, I spawn a background task. When this task finishes, I get the callback on a different method. Hence there is no way I can return list of WeekViewEvents in onMonthChange()

Sample code:

@OverRide
public List onMonthChange(int newYear, int newMonth) {
// Populate the week view with some events.
List events = new ArrayList();

    //fetch events for the date user selected
    fetchEventsinBackground();
}

//callback when fetchEvents finishes
public void setEventList(Activity activity, final List eventModels) {
// Because this call comes from the AsyncTask, we must ensure that the following
// code instead executes on the UI thread.

    //need to pass in activity here because sometimes getActivity() could be null if the
    // fragment is detached from the activity

    if(mProgressDialog != null && mProgressDialog.isShowing()) {
        mProgressDialog.dismiss();
    }

    activity.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            //TODO - update weekview - how ?
        }
    });

}

It would be great if you could separate event handling(in this case, onMonthChange) from setting of weekview events.

I really like the presentation of this widget, however the above issue is preventing me from using it . Would be great if you could resolve this somehow please.

Set preloading duration

I'm maintaining a schedule app and I would love to switch over to Android-Week-View. There's only one thing that bothers me:

In my app, I'm using the DayView the most, but I don't want to load 3 months in advance into the view. (I'm calling an external API and they won't appreciate it if I load so much at once).

So I would love a way to set how many days/weeks/months in advance to load.

Problem with set event

Hello, I have 2 dates:
15-01-2015 14:00, timestamp: 1421330400
15-01-2015 15:00, timestamp: 1421334000
and I want to set Event like this:
@OverRide
public List onMonthChange(int newYear, int newMonth) {

    List<WeekViewEvent> events = new ArrayList<WeekViewEvent>();

    GregorianCalendar startTime = new GregorianCalendar();
    startTime.setTimeInMillis(1421330400*1000);
    GregorianCalendar endTime = new GregorianCalendar();
    endTime.setTimeInMillis(1421334000*1000);

    WeekViewEvent event = new WeekViewEvent(1, getEventTitle(startTime), startTime.get(Calendar.YEAR) , startTime.get(Calendar.MONTH), startTime.get(Calendar.DAY_OF_MONTH), startTime.get(Calendar.HOUR_OF_DAY), startTime.get(Calendar.MINUTE), endTime.get(Calendar.YEAR) , endTime.get(Calendar.MONTH), endTime.get(Calendar.DAY_OF_MONTH), endTime.get(Calendar.HOUR_OF_DAY), endTime.get(Calendar.MINUTE));
    event.setColor(getResources().getColor(R.color.event_color_01));
    events.add(event);

    return events;
}

but event don't show on calendar, how to do this?

goToDate

Using the goToDate function doesn't seem to work as intended. For example:
Calendar myDate = Calendar.getInstace();
myDate.set(Calendar.DATE, 5);
myDate.set(Calendar.MONTH, 1);
mWeekView.goToDate(myDate);
Results in the equivalent of calling goToToday().
I've gotten some success from doing the following: myDate.add(Calendar.Date, x)
However this doesn't seem to work for anything beyond the current month.

Events disappear if they span more hours then what is showing in the view

Hello,

I have to display a bunch of events that are long. However, those events seem like they're drawn only when the start_time and end_time for the event can be contained within the view.

So, below is a screenshot of the events "before scrolling down" ( my guess: start_time and end_time are visible to the user, so, these events are drawn):
android_week_view_before

and "after scrolling down" (scrolled a little bit past 11, to 11:30ish, which is after the start_time. at this point, I think WeekView.drawEvents(..) is called, and some of the events are not re-drawn, aside from the lone event which begins around 16:00, and lasts for an hour):

android_week_view_after

Rather than having the event rectangles disappear, i would like as much of the event as possible to be drawn within the displayed time. Hope the explanation of my issue is clear. Do you know how i can get this to work?

Thank you,
Karthik

Add listener for changing/scrolling month

I need a listener when scrolling through the calendar and the month changes.

Something like:

mWeekView.setMonthScrolledListener(this);
...
public void onMonthScrolled(int newYear, int newMonth) {
    // I would update some parts of my ui like the actionbar title with the current year and month (Google calendar wise)
}

goToHour(..) not working

I want the current hour to be scrolled to by default, but using the goToHour(..) method does not work. See my code snippet below.

Code snippet:

Calendar calendar = Calendar.getInstance();
mWeekView.goToDate(calendar);
mWeekView.goToHour(calendar.get(Calendar.HOUR_OF_DAY)); // Not working... Also tried with Calendar.HOUR...

Using release 1.1.2

Weekly event and weekly scrolling

I couldn't get to create weekly event, probably because an onWeekChangeListener is not implemented. My suggestion is to implement a method to scroll from week to week (From monday to monday), an onWeekChangeListener to populate the weekView and a method to start the week from a preferred day, other than today. Thanks a lot

Split onMonthChange() in 2 methods: 1) only onMonthChange listener 2) only events manager

Is it possible to split onMonthChange() method in 2 separate methods? One that works like a simple onMonthChange() listener and it doesn't do anything else (it doesn't manage the events) and another one that manages only the creation of the events. Actually onMonthChange() makes both of these tasks and I can't call this method by myself to do some stuff without creating the events again, nor I can't create the events if I don't call it.

I try to explain better with an example. When onMonthChange() is called, I need to start an asyncTask inside it to get the events those comply with some parameters (nextMonth and nextYear) downloading them from a server. But when asyncTask returns the results (the events) the onMonthChange() has just finished his job and returned no events (because the asyncTask dind't return the events yet).

Split hour column into minutes

Hey. Is there a way where in I can split the hours on the left into minutes? Also, lets say there are two events one starting from 3PM and ends and 3.30PM, the second one starts at 3.30PM and ends at 4.30PM. Now, when the background is highlighted, both events look like this,
issue

Is there a way to put a differentiator between two consecutive events? Also, is there a way to add a new event by clicking on time column?

Issues & Queries for Weekview

Thanks for sharing this library,

Here i have Query need help,

  1. How i can add dynamic event in week view ?
    -Date :: 1/13/2015
    -FromTime ::12:30
    -ToTime :: 5:30
    as above mention there are my data which i am getting in response from server, how i can add it ?

2)How i can manage "onMonthChange" ?
-I used AsyncTask for send request to the server, as result how i can add event after getting responce in "onPostExecute"

  1. Add event in 3 times
  • i think this is open issue, while i am adding any event in weekview in will add 3 times

Here is the code i am trying to modify it and set dynamic event but no luck !!!

@OverRide
public List onMonthChange(int newYear, int newMonth) {

    // Populate the week view with some events.
    List<WeekViewEvent> events = new ArrayList<WeekViewEvent>();

    String date1 = "2015-01-12 02:30 am";
    SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd hh:mm a");
    java.util.Date d1 = null;
    Calendar cal;

    try 
    {
        d1 = form.parse(date1);
    } 
    catch (java.text.ParseException e) 
    {
        e.printStackTrace();
    }

    cal = Calendar.getInstance();
    cal.setTime(d1);


    Calendar startTime = Calendar.getInstance();
    startTime.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH));
    startTime.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY));
    startTime.set(Calendar.MINUTE, cal.get(Calendar.MINUTE));
    startTime.set(Calendar.MONTH, cal.get(Calendar.MONTH));

    Calendar endTime = (Calendar) startTime.clone();        
    endTime.set(Calendar.DAY_OF_MONTH,12);
    endTime.set(Calendar.HOUR_OF_DAY,4);
    endTime.set(Calendar.MINUTE,30);
    endTime.set(Calendar.MONTH, 0);

    WeekViewEvent event = new WeekViewEvent(1, getEventTitle(startTime), startTime, endTime);
    event.setColor(getResources().getColor(R.color.event_color_01));
    events.add(event);

    return events;
}

Please give me solution or idea.

Thanks in advance.

Header Click Event

How to get Calendar header click event.I need to show a datepicker on click header.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.