cha*_*ake 6 android wildcard realm sql-like
我正在尝试:
mRealm
.where(Contact.class)
.equalTo(Contact.NAME, text, Case.INSENSITIVE)
.findAllSortedAsync(Contact.NAME, Sort.ASCENDING);
Run Code Online (Sandbox Code Playgroud)
结果:未达到预期结果.
mRealm
.where(Contact.class)
.contains(Contact.NAME, text, Case.INSENSITIVE)
.findAllSortedAsync(Contact.NAME, Sort.ASCENDING);
Run Code Online (Sandbox Code Playgroud)
结果:未达到预期结果.
预期结果:
mRealm
.where(Contact.class)
.like(Contact.NAME, text, Case.INSENSITIVE)
.findAllSortedAsync(Contact.NAME, Sort.ASCENDING);
Run Code Online (Sandbox Code Playgroud)
新答案:
领域2.3.0+:
Run Code Online (Sandbox Code Playgroud)public RealmQuery<E> like(String fieldName, String value, Case casing)使用通配符调整字段值与指定子字符串匹配的条件:
'*'匹配[0, n]unicode字符
'?'匹配单个unicode char.参数:
fieldName- 要比较的字段.
value- 通配符字符串.
casing- 如何处理套管.将其设置为Case.INSENSITIVE仅适用于Latin-1字符.返回:查询对象.
抛出:IllegalArgumentException - 如果一个或多个参数与类或字段类型不匹配.
老答案:
mRealm
.where(Contact.class)
.contains(Contact.NAME, text, Case.INSENSITIVE)
.findAllSortedAsync(Contact.NAME, Sort.ASCENDING);
Run Code Online (Sandbox Code Playgroud)
这应该可以,但是当完成实际的异步查询时,您将收到对附加的RealmChangeListener的回调.
A RealmRecyclerViewAdapter自动从https://github.com/realm/realm-android-adapters执行此操作.