我有以下 RealmObject:
public class City extends RealmObject {
private String cityId;
private RealmList<Street> streets;
public String getId() {
return cityId;
}
public void setCityId(String cityId) {
this.cityId = cityId;
}
public RealmList<Street> getStreets() {
return streets;
}
public void setStreets(RealmList<Street> streets) {
this.streets = streets;
}
}
现在有了 cityId,我需要查询特定城市的街道。怎么做?我所做的尝试是:
Realm.getInstance(context).where(City.class).equalTo("cityId", someCityId, false)
.findFirst().getStreets().where().findAll()
但这会导致异常。我需要在实现过滤的
ListView
中显示街道,因此我需要将街道设为 RealmResults
才能使用 RealmBaseAdapter<Street>
。 最佳答案
正确的方法是在您的Activity中以onCreate()
打开并在onDestroy()
或in your custom application class中关闭一个打开的Realm实例。
然后,您可以使用该 Realm 实例来查询 Realm
City city = realm.where(City.class).equalTo("cityId", cityId).findFirst();
然后,您可以像访问其他列表一样访问
RealmList<T>
RealmList<Street> streets = city.getStreets();
然后,您可以使用recyclerview获取
streets
列表中给定索引的 View 。