【发布时间】:2026-01-18 09:15:01
【问题描述】:
我在我的 Android 应用程序中搜索 SQLite 数据库时遇到了一些问题。我使用 Search 接口将搜索变量(searchActivity.query)传递给这个:
//searchActivity.query obtained from:
//String query = searchActivity.getStringExtra(SearchManager.QUERY);
String searchString = "'" + searchActivity.query + "%'";
//sqlitedb is called via: private SQLiteDatabase sqlitedb;
Cursor cursor = sqlitedb.query(DATABASE_TABLE, new String[]
{"id", "FirstName","LastName"},
"FirstName LIKE " + searchString, null, null, null, null);
int index_CONTENT = cursor.getColumnIndex(FirstName);
for(cursor.moveToFirst(); !(cursor.isAfterLast()); cursor.moveToNext()){
result = result + cursor.getString(index_CONTENT) + "\n";
}
问题是使用“LIKE”语句会输出数据库中的所有内容 - 违背了使用搜索界面的目的。我不太确定我哪里出错了。
我尝试用“=”替换 LIKE,但它什么也没显示,即使我 100% 确定记录存在。
任何帮助将不胜感激!
提前致谢,
乔
更新: 对不起,误导性的标题。我没有正确传递搜索查询。
【问题讨论】: