Android 数据库到ListView-筛选出条目

Android 数据库到ListView-筛选出条目,android,listview,simplecursoradapter,Android,Listview,Simplecursoradapter,我有一个SQLite数据库,我通过SimpleCursorAdapter从数据库中获得一个ListView。现行守则如下: Cursor c = mDatabase.query( "database", bla = new String[]{ "_id", "title", "message",

我有一个SQLite数据库,我通过SimpleCursorAdapter从数据库中获得一个ListView。现行守则如下:

Cursor c = mDatabase.query(
            "database",
            bla = new String[]{
                    "_id",
                    "title",
                    "message",
                    "time",
                    "date",
                    "done"
            },
            null, null, null, null, null);
    startManagingCursor(c);

    SimpleCursorAdapter listAdapter =
            new SimpleCursorAdapter(this,
                    R.layout.list_item, c,
                    new String[]{"title", "message", "time", "date"},
                    new int[]{R.id.txtv_title, R.id.txtv_message, R.id.txtv_time, R.id.txtv_date}
            );
    setListAdapter(listAdapter);
这是预期的工作,我得到我的ListView。 现在我想知道,如果数据库中的“done”字段包含字符串“false”(而不是“true”…),则此行不会进入ListView

我该怎么做?
提前谢谢

这更像是SQL,而不是Android相关的。您要查找的是Where子句:

String query = "SELECT _id, title, message, time, date, done "+
"FROM database "+
"WHERE done = 'true' "+
"ORDER BY date";
要将此查询发送到SQLite数据库,可以使用rawQuery()-方法:


这更多的是SQL,而不是Android相关的。您要查找的是Where子句:

String query = "SELECT _id, title, message, time, date, done "+
"FROM database "+
"WHERE done = 'true' "+
"ORDER BY date";
要将此查询发送到SQLite数据库,可以使用rawQuery()-方法:


这就是解决方案,谢谢!我甚至没有想过用查询来实现它……但是您可以提供where和orderby-to查询方法,而无需使用rawQuery。。。方法query更易于维护,那么rawQuery fx u可以存储静态列数组和表名,这样您就可以在一个地方更改它,而不是在每个查询字符串中。我不喜欢simple query()-方法,因为我能够使用SQL,那么为什么要使用为我做这些事情的东西呢?当然,你也可以使用这种方法,结果应该是相同的。是的,结果将是相同的,但fx u将所有列存储在静态界面中,u在查询、创建数据库和其他地方使用em,u在列名中发现拼写错误。。。通过查询和静态列名,您可以轻松找到所有发生的事件。。。我也不是一个有趣的问题。。。我喜欢创建contentprovider,而不是在其他地方干扰db,然后在CPC中这就是解决方案,谢谢!我甚至没有想过用查询来实现它……但是您可以提供where和orderby-to查询方法,而无需使用rawQuery。。。方法query更易于维护,那么rawQuery fx u可以存储静态列数组和表名,这样您就可以在一个地方更改它,而不是在每个查询字符串中。我不喜欢simple query()-方法,因为我能够使用SQL,那么为什么要使用为我做这些事情的东西呢?当然,你也可以使用这种方法,结果应该是相同的。是的,结果将是相同的,但fx u将所有列存储在静态界面中,u在查询、创建数据库和其他地方使用em,u在列名中发现拼写错误。。。通过查询和静态列名,您可以轻松找到所有发生的事件。。。我也不是一个有趣的问题。。。我喜欢创建contentprovider,而不是在其他地方使用db,而不是在cp中