如何删除RealmList元素?

时间:2016-11-26 14:44:38

标签: java android realm

我有一个课程如下:

public class SomeStuff extends RealmObject {

    public RealmList<CatDetails> cat;


    public RealmList<CatDetails> getcat() {
        return cat;
    }

    public void setCat(RealmList<CatDetails> cat) {
        this.cat = cat;
    }
}

和这里的CatDetails:

public class CatDetails extends RealmObject {

    @Index String catNumber;
    @Index String catName;


    // setters and getters for catName and catNumber
}

现在我如何从字段cat中删除一个元素?也就是说,我希望将班级SomeStuff中的arraylist的大小减少1。

我试过了:

realm.where(SomeStuff.class).findAll().get(pos).getCatDetails().get(0).deleteFromRealm();

以及:

realm.where(SomeStuff.class).findAll().get(pos).getCatDetails().deleteAllFromRealm();

但是在两种情况下填充recyclerview时都会得到一个ArrayIndexOutOfBoundsException。

1 个答案:

答案 0 :(得分:0)

删除:

realmList.get(0).deleteFromRealm();

但值得注意的是,表在事务中立即更新,因此仅使用增强的for循环并不像在RealmResults上那样工作。使用iterator()的正常remove()会起作用。