Android Realm中不推荐使用Realm-results.remove()
既然realm中不推荐使用results.remove(0),那么在android应用程序中删除realm元素的最佳方法是什么 我已尝试删除特定元素,并使用了以下代码: 使用Android Realm中不推荐使用Realm-results.remove(),android,realm,Android,Realm,既然realm中不推荐使用results.remove(0),那么在android应用程序中删除realm元素的最佳方法是什么 我已尝试删除特定元素,并使用了以下代码: 使用result.deleteAllFromRealm()删除所有元素,但需要删除特定位置 RealmResults<PersonDetailsModel> results = myRealm.where(PersonDetailsModel.class).equalTo("id", personId).findAl
result.deleteAllFromRealm()代码>删除所有元素,但需要删除特定位置
RealmResults<PersonDetailsModel> results = myRealm.where(PersonDetailsModel.class).equalTo("id", personId).findAll();
myRealm.beginTransaction();
results.remove(0); // App crash
myRealm.commitTransaction();
建议解决此问题的方法。使用deleteFromRealm方法
result.deleteFromRealm(index);
result.deleteFromRealm(index);
试试这个:
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
RealmResults<PersonDetailsModel> result = realm.where(PersonDetailsModel.class).equalTo("id", personId).findAll();
result.deleteAllFromRealm();
}
});
您可以使用以下代码:
或
这里已经回答了:我之所以添加这个答案,是因为deleteFromRealm(index)
调用不可靠,而且没有人发布object.deleteFromRealm
。因此,如果有人打开这个页面,不去重复,他们会看到大部分错误的答案。我没有内疚的良心结束这一重复,也没有提供一个答案,其他包含“规范的方式”。
result.deleteFromRealm(pos);
result.deleteFromRealm(index);
realm.executeTransaction((r) -> {
r.where(PersonDetailsModel.class).equalTo("id", personId).findAll().deleteAllFromRealm();
});
realm.executeTransaction((r) -> {
PersonDetailsModel person = r.where(PersonDetailsModel.class).equalTo("id", personId).findFirst();
if(person != null) {
person.deleteFromRealm();
}
});