gpt4 book ai didi

android - 从android中的 Realm 删除单个对象数据/行

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:27:17 24 4
gpt4 key购买 nike

我像这样添加了单个用户的数据:

Realm realm = Realm.getDefaultInstance();
newUser = new UserDatabase();

realm.executeTransaction(new Realm.Transaction() {

public void execute(Realm realm) {
newUser.setClassName(classSectionName);
newUser.setClassNO(classNO);
newUser.setImageUrl(imageUrl);
newUser.setRollNo(rollNO);
newUser.setSchool(school);

// and now saved the data in peresistant data like this:
realm.copyToRealm(newUser);
}
});

但是我找不到从 Realm 数据库中删除单个条目的方法,即使我这样尝试过,它也不起作用。

Realm realm = Realm.getDefaultInstance();
UserDatabase tempUser = new UserDatabase();
final RealmResults<UserDatabase> students = realm.where(UserDatabase.class).findAll();

for(int i=0 ; i<students.size();i++){
final int index =i;
if((students.get(i).getUserID()).equals(prefs.getString(QRActivity.USER_ID_AFTER_LOGIN,"jpt"))&&
(students.get(i).getUserName()).equals(prefs.getString(QRActivity.USER_NAME_AFTER_LOGIN,"jpt"))){

realm.executeTransaction(new Realm.Transaction() {

public void execute(Realm realm) {

//Trying to delete a row from realm.

students.deleteFromRealm(index);

}
});

}
}

有人知道吗?

最佳答案

您总能找到匹配的 instance来自 RealmResults<UserDatabase>使用 Realm Query而不是为它运行循环。试试这个。

final RealmResults<UserDatabase> students = realm
.where(UserDatabase.class)
.findAll();

UserDatabase userdatabase = students
.where()
.equalTo("userId",prefs.getString(QRActivity.USER_ID_AFTER_LOGIN,"jpt"))
.equalTo("userName",prefs.getString(QRActivity.USER_NAME_AFTER_LOGIN,"jpt"))
.findFirst();

if(userdatabase!=null) {

if (!realm.isInTransaction()) {
realm.beginTransaction();
}

userdatabase.deleteFromRealm();

realm.commitTransaction();
}

注意: 我只是假定您的列为“userId”和“userName”,您可以改写您的列名。

关于android - 从android中的 Realm 删除单个对象数据/行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37453122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com