1

在我的(第一个)android 应用程序上,我有一个显示用户约会列表的日记屏幕。目前,该应用程序显示了一个约会列表,列表中显示了核心信息(开始时间、结束时间等)。

为了让用户知道他们在约会之间什么时候有空闲时间,他们需要煞费苦心地查看所有时间并计算出何时有空档。我想在视觉上创造这个差距,让用户更直观。

目前我正在使用 SimpleCursorAdapter 从 SQLite 表中填充列表视图,但据我所知,我无法编辑游标的结果(因为 - 我的理解是 - 游标只是指向数据库的指针,而不是副本的信息)。

理想情况下,我想做的是检测约会之间是否存在间隙,并在有间隙的地方插入一个额外的行(无论间隙的大小 - 只是一行)。我希望这个“间隙”行说明间隙包含多少分钟的空闲时间。

实现这一目标的最佳方法是什么?

我在下面添加了我的理想布局:

在此处输入图像描述

4

1 回答 1

1

你可以预约上课:

class Appointment implements Comparable<Appointment> {

    // your appointment class

    private String title;
    private Date time;
    private boolean isFreeTime;
    etc.

    Constructor
    Setters/Getters

    @Override
    public int compareTo(Appointment appointment) {
        return 0; //Here you sort by date or whatever you want
    }
}

在设置适配器之前浏览光标。

ArrayList<Appointment> appointments = new ArrayList<Appointment>();

if (cursor == null)
    return;

cursor.moveToFirst();

while (!cursor.isAfterLast()) {

    Appointment appointment = new Appointment(/*your stuff*/);
    appointments.add(appointment);

    cursor.moveToNext();

}

cursor.close();

然后浏览列表并添加所有空闲时间行。

appointments.setFreeTime(true);

利用

Collections.sort(appointments);

扩展 BaseAdapter 并将 ArrayList 传递给该适配器

这应该工作:)

于 2013-08-29T15:55:50.830 回答