将嵌套在RealmList中的嵌套Realm对象查询到RealmResults中

Sta*_*tan 5 android realm realm-base-adapter

我有以下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;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在有一个城市我需要查询特定城市的街道.怎么做?我做的尝试是:

    Realm.getInstance(context).where(City.class).equalTo("cityId", someCityId, false)
         .findFirst().getStreets().where().findAll()
Run Code Online (Sandbox Code Playgroud)

但这导致了一个例外.我需要在显示的街道ListView实施过滤,所以我需要街道要RealmResults使用RealmBaseAdapter<Street>.

Epi*_*rce 0

正确的方法是让一个打开的 Realm 实例在您的 Activity 中打开onCreate()并在 中关闭onDestroy(),或者在您的自定义应用程序类中关闭。

然后你可以使用这个realm实例来查询realm

City city = realm.where(City.class).equalTo("cityId", cityId).findFirst();
Run Code Online (Sandbox Code Playgroud)

然后您可以像访问RealmList<T>任何其他列表一样访问

RealmList<Street> streets = city.getStreets();
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用 recyclerview 获取列表中给定索引的视图streets