在我的(第一个)Android应用程序上,我有一个日记屏幕,显示用户拥有的约会列表。目前,该应用程序显示了一个约会列表,其中列出了核心信息(开始时间,结束时间等)。
为了让用户看到他们在约会之间有空闲时间,他们需要煞费苦心地一直看着,并在有差距的时候解决问题。我想在视觉上创建这个差距,使其对用户更直观。
目前我正在使用SimpleCursorAdapter从SQLite表填充listview,但据我所知,我无法编辑游标的结果(因为 - 我理解 - 游标只是指向数据库的指针,不是信息的副本。)
理想情况下,我想做的是检测约会之间是否存在间隙,并在有间隙的情况下插入额外的行(无论间隙的大小 - 只是一行)。我希望这个“间隙”行说明差距包含多少分钟的空闲时间。
实现这一目标的最佳方法是什么?
我在下面添加了理想的布局:
答案 0 :(得分: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传递给该适配器
这应该有效:)