首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自sqlite数据库android的getAll

来自sqlite数据库android的getAll
EN

Stack Overflow用户
提问于 2013-06-09 07:46:35
回答 2查看 112关注 0票数 0

我想做一个注明日期的备忘录,我把日期和活动放在与日历分开的地方。如何根据输入的日期显示日历中的所有事件?

代码语言:javascript
复制
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;
    }

这是真的吗?谢谢你的回复。

EN

回答 2

Stack Overflow用户

发布于 2013-06-09 09:26:59

你需要使用像SELECT * FROM some_table WHERE date('1990-01-01');这样的东西(只需插入你的自定义日期)。这应该返回表中具有相同日期值的所有结果。有关进一步的解释,请参阅this post,查看SQLite documentation了解您还可以对日期做些什么。

两个回答你的第二个问题,使用ListView应该没问题。我个人使用ArrayList来填充我的ListView中的SQLite结果,因为查询返回任意数量的结果。ArrayList使得存储和访问这些结果变得很容易。

票数 0
EN

Stack Overflow用户

发布于 2013-06-09 10:52:50

你把日期改成GMTTIMESTAMP了吗?如果是这样

代码语言:javascript
复制
 String Q= "SELECT * FROM "+TABLE_FOTO +" ORDER BY GMTTIMESTAMP DESC;"; 

将把最新数据的所有行放在最前面。

或者你可以通过你的主键引用它?

我总是被告知要确保记得在括号中放一个分号,否则就会让自己暴露在SQL注入中。

并且您总是希望检查是否有null游标,因此您还应该拥有

if(cursor!=null&&cursor.moveToFirst()){}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17005042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档