我想做一个注明日期的备忘录,我把日期和活动放在与日历分开的地方。如何根据输入的日期显示日历中的所有事件?
public List<Foto> getAllFotoList() {
List<Foto> fotoList = new ArrayList<Foto>();
String query_tb_foto = "SELECT * FROM " + TABLE_FOTO;
// SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(query_tb_foto, null);
if (cursor.moveToFirst()) {
do {
// Siswa siswa = new Siswa(cursor.getString(0),
// cursor.getString(1));
Foto foto = new Foto(cursor.getString(cursor
.getColumnIndexOrThrow("COL_JUDULFT")),
cursor.getString(cursor
.getColumnIndexOrThrow("COL_IMG")),
cursor.getString(cursor
.getColumnIndexOrThrow("COL_DESFT")),
cursor.getString(cursor
.getColumnIndexOrThrow("COL_STARTDATEFT")),
cursor.getString(cursor
.getColumnIndexOrThrow("COL_STARTTIMEFT")),
cursor.getString(cursor
.getColumnIndexOrThrow("COL_ENDDATEFT")),
cursor.getString(cursor
.getColumnIndexOrThrow("COL_ULANGFT")),
cursor.getString(cursor
.getColumnIndexOrThrow("COL_ALARMFT")));
fotoList.add(foto);
} while (cursor.moveToNext());
return fotoList;
}
return null;
}这是真的吗?谢谢你的回复。
发布于 2013-06-09 09:26:59
你需要使用像SELECT * FROM some_table WHERE date('1990-01-01');这样的东西(只需插入你的自定义日期)。这应该返回表中具有相同日期值的所有结果。有关进一步的解释,请参阅this post,查看SQLite documentation了解您还可以对日期做些什么。
两个回答你的第二个问题,使用ListView应该没问题。我个人使用ArrayList来填充我的ListView中的SQLite结果,因为查询返回任意数量的结果。ArrayList使得存储和访问这些结果变得很容易。
发布于 2013-06-09 10:52:50
你把日期改成GMTTIMESTAMP了吗?如果是这样
String Q= "SELECT * FROM "+TABLE_FOTO +" ORDER BY GMTTIMESTAMP DESC;"; 将把最新数据的所有行放在最前面。
或者你可以通过你的主键引用它?
我总是被告知要确保记得在括号中放一个分号,否则就会让自己暴露在SQL注入中。
并且您总是希望检查是否有null游标,因此您还应该拥有
if(cursor!=null&&cursor.moveToFirst()){}
https://stackoverflow.com/questions/17005042
复制相似问题