CompactCalendarView icon indicating copy to clipboard operation
CompactCalendarView copied to clipboard

Solution: How to add Events.

Open ghost opened this issue 7 years ago • 1 comments

So, here is how to add events by the easiest way, FloatingActionButton (fab) that opens a Alert Dialog. Type some text and press "yes" or cancel.

  1. Clone project
  2. add api 'com.android.support:design:27.1.1' to build.gradle.
  3. res/layouts/main_tab.xml - Add anywhere.
<android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_margin="16dp"
        android:backgroundTint="@color/black"
        android:layout_alignParentRight="true" />
  1. java/..sample/CompactCalendarTab - add a String variable at top. public String passDayClicked; In onCreate method - Before return to mainTabview - add ... one line before " if (bookingsFromMap != null) { " " passDayClicked = dateFormatForDisplaying.format(dateClicked); "

add before return statement on onCreateView

FloatingActionButton fab = (FloatingActionButton) mainTabView.findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                open(mainTabView);
            }
        });

... // Adds the Title to AlertDialog.

@RequiresApi(api = Build.VERSION_CODES.KITKAT)
    public void open(View view) {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Objects.requireNonNull(getActivity()));

        final EditText edittext = new EditText(getContext());
        alertDialogBuilder.setView(edittext);
        alertDialogBuilder.setTitle("Enter Your title");
        alertDialogBuilder.setMessage("Enter message: ");
        alertDialogBuilder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                //What ever you want to do with the value
                String YouEditTextValue = edittext.getText().toString();

                long dateMillis = datetoMillis(passDayClicked);
                Log.d(TAG, "onClick: DATE: + " + dateMillis);
                Event ev1 = new Event(Color.GREEN, dateMillis, YouEditTextValue);
                compactCalendarView.addEvent(ev1);
            }
        });

        alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                // what ever you want to do with No option.
            }
        });

        alertDialogBuilder.show();
    }

...

// Convert Date into MilliSeconds, to add to correct Day.
public long datetoMillis(String day) {
        day = day.replace("AM", "");
        day = day.replace("PM", "");
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
        Date date = null;
        try {
            date = sdf.parse(day);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        long millis = date.getTime();
        return millis;
    }

All done! Enjoy.

ghost avatar Oct 25 '18 21:10 ghost

add before return statement on onCreateView

FloatingActionButton fab = (FloatingActionButton) mainTabView.findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                open(mainTabView);
            }
        });

... // Adds the Title to AlertDialog.

@RequiresApi(api = Build.VERSION_CODES.KITKAT)
    public void open(View view) {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Objects.requireNonNull(getActivity()));

        final EditText edittext = new EditText(getContext());
        alertDialogBuilder.setView(edittext);
        alertDialogBuilder.setTitle("Enter Your title");
        alertDialogBuilder.setMessage("Enter message: ");
        alertDialogBuilder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                //What ever you want to do with the value
                String YouEditTextValue = edittext.getText().toString();

                long dateMillis = datetoMillis(passDayClicked);
                Log.d(TAG, "onClick: DATE: + " + dateMillis);
                Event ev1 = new Event(Color.GREEN, dateMillis, YouEditTextValue);
                compactCalendarView.addEvent(ev1);
            }
        });

        alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                // what ever you want to do with No option.
            }
        });

        alertDialogBuilder.show();
    }

...

// Convert Date into MilliSeconds, to add to correct Day.
public long datetoMillis(String day) {
        day = day.replace("AM", "");
        day = day.replace("PM", "");
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
        Date date = null;
        try {
            date = sdf.parse(day);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        long millis = date.getTime();
        return millis;
    }

I have no idea where to put this. Could you tell me where I have to put it all?

Nassim0 avatar Feb 13 '19 13:02 Nassim0