【发布时间】:2016-01-24 11:17:08
【问题描述】:
我在我的开源 Linux 命令库项目中将 sqlite 替换为 realm。到目前为止一切都很好,但现在我遇到了问题。
我正在使用 RealmBaseAdapter 在带有搜索界面的 ListView 中显示所有命令。对于搜索,下面狙击的领域会按如下顺序排列结果:
查询: 测试
结果:
- l2测试
- rc测试
- 测试
-
测试参数
RealmResults<Command> commands = mRealm.where(Command.class).contains("name", query).findAll(); mAdapter.updateRealmResults(commands);
使用旧的 sqlite 逻辑,顺序是这样的:
结果:
- 测试
- 测试参数
- l2测试
- rc测试
return getReadableDatabase().rawQuery("Select * from " + CommandsDBTableModel.TABLE_COMMANDS + " WHERE " + CommandsDBTableModel.COL_NAME + " LIKE '%" + query + "%' " + "ORDER BY " + CommandsDBTableModel.COL_NAME + " = '" + query + "' DESC," + CommandsDBTableModel.COL_NAME + " LIKE '" + query + "%' DESC", null);
realm也可以实现吗? 这是项目的链接https://github.com/SimonSchubert/LinuxCommandBibliotheca
【问题讨论】:
-
我会创建一个自定义适配器,它从两个查询的 Realm 结果拼凑起来,一个是startsWith(),另一个是“包含但不以开头”。
-
谢谢,它正在工作。