Android自定义日历事件管理

Android自定义日历事件管理,android,listview,android-listview,calendar,Android,Listview,Android Listview,Calendar,我正在尝试构建一个自定义的android应用程序,用于我的公司,它包含android日历的多个方面。其中一个方面是显示和显示的议程视图 我的应用程序基本上需要复制这个议程视图/列表视图,以显示从API返回的定制事件集。到目前为止,我已经获得了数据,并将其保存到本地数据库中,以列表视图/议程视图的形式显示 我可以创建这些自定义事件的列表,但是很简单,使用没有标题的simplelistadapter来分隔日期。事实证明,按日期将项目分开或分组相当麻烦。我创建了一个自定义列表适配器,但我看到的示例只使

我正在尝试构建一个自定义的android应用程序,用于我的公司,它包含android日历的多个方面。其中一个方面是显示和显示的议程视图

我的应用程序基本上需要复制这个议程视图/列表视图,以显示从API返回的定制事件集。到目前为止,我已经获得了数据,并将其保存到本地数据库中,以列表视图/议程视图的形式显示

我可以创建这些自定义事件的列表,但是很简单,使用没有标题的simplelistadapter来分隔日期。事实证明,按日期将项目分开或分组相当麻烦。我创建了一个自定义列表适配器,但我看到的示例只使用预定义的组标题和每个父组中最少的子信息

@Override
public View getGroupView(int groupPosition, boolean IsExpanded, View convertView, ViewGroup parent) {
    String headerTitle = (String) getGroup(groupPosition);
    if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater) this._context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.event_header_listview, null);
    }

    TextView lblListHeader = (TextView) convertView
            .findViewById(R.id.eventListHeader);
    lblListHeader.setTypeface(null, Typeface.BOLD);
    lblListHeader.setText(headerTitle);
    //group by date? Set dynamic date based on today and going out one day at a time?

    return convertView;
}
是否有一种方法可以基于日期创建列表项组,将该日期标题扔到标题项上,每个标题项都是可展开的listview,并创建与我上面发布的默认日历listview/议程视图图片相同的这些组标题列表

虽然复制已经创建的内容似乎需要做很多工作,但是否有我可以使用的现有列表视图控件?我还阅读了CalendarContract类中关于如何创建事件、修改事件、设置与会者和提醒的内容,这也是我希望我的应用程序所要做的,但是我没有发现任何关于将这些内置日历函数的视图显示或移植到我的应用程序的内容。我是否遗漏了一些东西,或者您只能管理我的应用程序中的事件(由一些虚拟屏幕输入),以便由默认日历应用程序(而不是我自己的应用程序)查看

我发现的例子包括:,


我是否应该坚持下去,创建一个自定义适配器,并尝试复制现有的日历应用程序?或者找到一种将默认日历引入我的应用程序的方法?我最终需要在iOS和Android上创建它,并且需要能够创建、更新、查看、通知和管理我的应用程序账单中的所有内容。

听起来像是一个设计模式问题。日历只是对象的集合。一个月包含x个星期,其中包含x个天数。每天包含x个约会,其中包含x个项目。我认为日历实际上是在GoF关于设计模式的原著中使用的。我会这么看的。然后你只需要一个适配器,它接受一种类型和一些自定义视图。是的,我觉得我无法理解如何对来自API的项进行分组。你说得对,它只是一个对象数组,但在一个适配器中对它们进行分组,应用动态日期头,并向外推到我的自定义视图?我来自.NET,这几乎像是一种气味?没有气味。我举个例子只是为了说明。假设您有一个适配器,用于保存月份对象。月是周对象的集合。周是日对象的集合。一天是发生的事情的集合,所有这些事情都实现了一个公共接口——让我们称之为约会。您可以通过将不同的对象编译在一起来编写日历。然后,您只需要直观地显示月、周、日的视图,然后再显示您将一天划分为的每个子级别的视图。