我有一个应该替换 Android 原生联系人的 Android 应用程序。
我想为用户添加基于字符约束搜索用户的可能性。
例如:
这是我的联系人表:
id firstName lastName
1. Smith Jean
2. allen carr
3. zetter
4. john Stewart
5. Smith Allen
6. Smith Davey
7. Smitten
8. barney saltzberg
如果用户输入字符's'
,我想给他所有在他们的名字或姓氏中以“s”开头的联系人,先按名字排序,然后按姓氏排序。从我想要得到的结果之前的表中是:
id firstName lastName
1. Smith Allen
2. Smith Davey
3. Smith Jean
4. barney saltzberg
4. Smitten
5. john Stewart
更新: 问题是当名字等于 NULL 时,排序不起作用,并且该行显示在它应该之前。我尝试了marcin的答案,它给了我错误的结果。
我尝试了以下方法:
字符串选择 = PeopleDataBase.COLUMN_FIRST_NAME + " LIKE '" + 约束 + "%' OR " + PeopleDataBase.COLUMN_LAST_NAME + " LIKE '" + 约束 + "%'";
光标 cur = db.query(PeopleDataBase.TABLE_PEOPLE, null, selection, null, null, null, null);
我想通过两个不同的查询来实现这一点,一个用于名字,一个用于姓氏,然后将它们连接到一个游标,但我确信有更好的解决方案。
更新:我也尝试按以下方式排序,但没有成功。
Cursor cur = db.query(PeopleDataBase.TABLE_PEOPLE, null, selection, null, null, null, PeopleDataBase.COLUMN_FIRST_NAME + "," + PeopleDataBase.COLUMN_LAST_NAME);
你有更好的解决方案吗?