如何添加没有找到Android数据库查询的结果

时间:2014-08-19 14:11:08

标签: android android-sqlite

我已经在我的Android应用中成功对我的SQLite数据库进行了搜索查询,但我所写的方法如果没有结果则无法执行任何操作找到。我不能真正流利地编写数据库查询,所以我无法弄清楚要放在哪里,或者如何编写类似

的内容
if(cursor = null){
String noresultStr = "No Results found";
}

以下是我编写的方法:

    public Cursor searchDB(String searchTermStr) {
    String[] parts = searchTermStr.split(" ");
    String queryString = "";
    for (int i = 0; i < parts.length; i++) {
        queryString += KEY_TITLE + " LIKE '%" + parts[i] + "%' OR ";
        queryString += KEY_BODY + " LIKE '%" + parts[i] + "%' OR ";
        queryString += KEY_KEYWORDS + " LIKE '%" + parts[i] + "%'";
        if (i != (parts.length - 1)) {
            queryString += " OR ";
        }
    }

    return mDb.query(true, DB_TABLE, new String[] { KEY_ROWID, KEY_SDF,
            KEY_CAL_DATE, KEY_PATH, KEY_TITLE, KEY_BODY, KEY_KEYWORDS },
            queryString, null, null, null, null, null);

}

2 个答案:

答案 0 :(得分:0)

如果找不到结果,则返回空Cursor。这是检查它的方法:

Cursor cursor = mDb.query(true, DB_TABLE, new String[] { KEY_ROWID, KEY_SDF,
        KEY_CAL_DATE, KEY_PATH, KEY_TITLE, KEY_BODY, KEY_KEYWORDS },
        queryString, null, null, null, null, null);
if (cursor.getCount() == 0) {
    String noresultStr = "No Results found";
}

答案 1 :(得分:0)

我不知道setEmptyView(),所以,谢谢 A.A 建议我调查一下。我没有必要修改我用来搜索数据库的方法,我刚刚在我的DBSearch Activity中添加了TextView,如下所示:

final ListView list_LV = (ListView) searchRootView.findViewById(R.id.ssisearch_list_lv);
list_LV.setEmptyView(searchRootView.findViewById(R.id.ssiempty_list_tv));

......我得到了我想要的结果。