Gro*_*mis 1 android calendarview android-studio android-studio-3.0
我目前正在开发一个应用程序,但我一直在实施应用程序的日历部分。现在我正在尝试实现类似的东西:
我没有在原始日历视图上找到任何可以让我在几天内显示事件指示器、添加渐变颜色而不是纯色等的功能。我想在我的应用程序中实现这个设计:
我尝试使用 SundeepK 的 Compact Calendar View 但是我没有设法实现一个事件适配器来配合这个日历,我总是在传递上下文时收到错误,因为自定义日历不使用上下文。
下面的这段代码我试图实现列表视图以填充当月的事件。所以在月加载或滚动时,事件将被加载,传递给适配器,列表视图将填充新事件。但是,无论我做什么,我总是遇到一个错误,即我无法将 android.Context 转换为自定义日历上下文。
日历活动.java
compactCalendarView.setListener(new CompactCalendarView.CompactCalendarViewListener() {
@Override
public void onDayClick(Date dateClicked) {
List<Event> bookingsFromMap = compactCalendarView.getEvents(dateClicked);
EventListAdapter adapter = new EventListAdapter(context, bookingsFromMap);
ListView listView = (ListView) findViewById(R.id.calendar_event_list);
listView.setAdapter(adapter);
Log.d(TAG, "inside onclick " + simple_date_format.format(dateClicked));
if (bookingsFromMap != null) {
Log.d(TAG, bookingsFromMap.toString());
mutableBookings.clear();
for (Event booking : bookingsFromMap) {
mutableBookings.add((String) booking.getData());
Log.d(TAG, "Events in this day found!");
}
} else {
Log.println(Log.VERBOSE,TAG, "\n NO EVENTS FOUND \n");
}
}
Run Code Online (Sandbox Code Playgroud)
事件列表适配器.java
public class EventListAdapter extends ArrayAdapter<Event> {
public EventListAdapter(Context context, List<Event> feeds) {
super(context,0,feeds);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Event feed = getItem(position);
if(convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.event_feed_item_row, parent, false);
}
TextView eventName = (TextView) convertView.findViewById(R.id.event_list_dataText);
TextView eventDay = (TextView) convertView.findViewById(R.id.event_list_dayTextView);
TextView eventMonth = (TextView) convertView.findViewById(R.id.event_list_monthTextView);
SimpleDateFormat simple_month = new SimpleDateFormat("Mmm", Locale.US);
SimpleDateFormat simple_day = new SimpleDateFormat("dd", Locale.US);
eventName.setText((String) feed.getData());
eventMonth.setText(simple_month.format(feed.getTimeInMillis()));
eventDay.setText(simple_day.format(feed.getTimeInMillis()));
return convertView;
}
}
Run Code Online (Sandbox Code Playgroud)
现在从这里的截图:
日历背景只能在我想要渐变作为背景时才可以是纯色的,与所选日期相同的是纯色。

任何建议,将不胜感激。
小智 5
要以简单快捷的方式做到这一点,您只需要遵循这个 git hub 库,它是执行所需功能的多种选择。
底部将使用数据库在 Recyler 视图中创建
| 归档时间: |
|
| 查看次数: |
3860 次 |
| 最近记录: |