CompactCalendarView
CompactCalendarView copied to clipboard
Solution: How to add Events.
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.
- Clone project
- add api 'com.android.support:design:27.1.1' to build.gradle.
- 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" />
- 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.
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?