如何将数据添加到 applandeo 日历视图中的事件?
How to add data to events in applandeo calenderView?
有一个非常好的 libray(https://github.com/Applandeo/Material-Calendar-View) 用于自定义 android 日历视图。例如,为了向 calenderview 添加事件,有 class named Eventday.java,它将 calender 对象和一个 drawable 对象作为参数进行初始化。我希望它也可以采用字符串值,这样我也可以存储事件的描述,因为如果不能添加有关事件(字符串数据类型)的详细信息,则将事件添加到日历是没有意义的。有人可以为我的问题提供解决方法吗?
List<EventDay> events = new ArrayList<>();
Calendar calendar = Calendar.getInstance();
//we cannot details about the event(string data) while initializing the EventDay class
events.add(new EventDay(calendar, R.drawable.absentic));
首先进行自定义Class
import com.applandeo.materialcalendarview.EventDay;
import java.util.Calendar;
public class MyEventDay extends EventDay implements Parcelable {
private String mNote;
public MyEventDay(Calendar day, int imageResource, String note) {
super(day, imageResource);
mNote = note;
}
public String getNote() {
return mNote;
}
private MyEventDay(Parcel in) {
super((Calendar) in.readSerializable(), in.readInt());
mNote = in.readString();
}
public static final Creator<MyEventDay> CREATOR = new Creator<MyEventDay>() {
@Override
public MyEventDay createFromParcel(Parcel in) {
return new MyEventDay(in);
}
@Override
public MyEventDay[] newArray(int size) {
return new MyEventDay[size];
}
};
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeSerializable(getCalendar());
parcel.writeInt(getImageResource());
parcel.writeString(mNote);
}
@Override
public int describeContents() {
return 0;
}
}
在日历中添加事件
mEventDays.add(new MyEventDay(calender, R.drawable.ic_note_sticky, "I am Event");
用于检索字符串
calendarView.setOnDayClickListener(new OnDayClickListener() {
@Override
public void onDayClick(EventDay eventDay) {
Log.e("Event",((MyEventDay) eventDay).getNote()+" <--");
}
});
对我有用,希望对你也有帮助
我使用这种方法在用户点击任何日期时显示小的弹出式注释。
- 声明:
Map<Date,String> eventNotes = new HashMap<>()
- 在为每个日期更新日历事件时,
eventNotes
填充了所需的备注和日期作为关键字
- 在日历
setOnDayClickListener
中检索 eventNote
使用键 eventDay.getCalendar().getTime()
- 然后使用对话框弹出窗口显示该注释
有一个非常好的 libray(https://github.com/Applandeo/Material-Calendar-View) 用于自定义 android 日历视图。例如,为了向 calenderview 添加事件,有 class named Eventday.java,它将 calender 对象和一个 drawable 对象作为参数进行初始化。我希望它也可以采用字符串值,这样我也可以存储事件的描述,因为如果不能添加有关事件(字符串数据类型)的详细信息,则将事件添加到日历是没有意义的。有人可以为我的问题提供解决方法吗?
List<EventDay> events = new ArrayList<>();
Calendar calendar = Calendar.getInstance();
//we cannot details about the event(string data) while initializing the EventDay class
events.add(new EventDay(calendar, R.drawable.absentic));
首先进行自定义Class
import com.applandeo.materialcalendarview.EventDay;
import java.util.Calendar;
public class MyEventDay extends EventDay implements Parcelable {
private String mNote;
public MyEventDay(Calendar day, int imageResource, String note) {
super(day, imageResource);
mNote = note;
}
public String getNote() {
return mNote;
}
private MyEventDay(Parcel in) {
super((Calendar) in.readSerializable(), in.readInt());
mNote = in.readString();
}
public static final Creator<MyEventDay> CREATOR = new Creator<MyEventDay>() {
@Override
public MyEventDay createFromParcel(Parcel in) {
return new MyEventDay(in);
}
@Override
public MyEventDay[] newArray(int size) {
return new MyEventDay[size];
}
};
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeSerializable(getCalendar());
parcel.writeInt(getImageResource());
parcel.writeString(mNote);
}
@Override
public int describeContents() {
return 0;
}
}
在日历中添加事件
mEventDays.add(new MyEventDay(calender, R.drawable.ic_note_sticky, "I am Event");
用于检索字符串
calendarView.setOnDayClickListener(new OnDayClickListener() {
@Override
public void onDayClick(EventDay eventDay) {
Log.e("Event",((MyEventDay) eventDay).getNote()+" <--");
}
});
对我有用,希望对你也有帮助
我使用这种方法在用户点击任何日期时显示小的弹出式注释。
- 声明:
Map<Date,String> eventNotes = new HashMap<>()
- 在为每个日期更新日历事件时,
eventNotes
填充了所需的备注和日期作为关键字 - 在日历
setOnDayClickListener
中检索eventNote
使用键eventDay.getCalendar().getTime()
- 然后使用对话框弹出窗口显示该注释