【发布时间】:2013-05-22 01:08:41
【问题描述】:
我有一个应该替换 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
更新: 问题是当 First name 等于 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);
你有更好的解决方案吗?
【问题讨论】:
-
大家好,答案仍然没有帮助我。我想我会以艰难的方式来做,两个不同的查询,然后连接答案。
标签: android sqlite android-contacts