我已经在我的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);
}
答案 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));
......我得到了我想要的结果。