Подтвердить что ты не робот

Операция обновления в Realm

У меня есть таблица форм VisitingCardPOJO. Я хочу, чтобы обновленная одиночная запись говорила где нет = 3

VisitingCardPOJO.java

public class VisitingCardPOJO extends RealmObject {

   @PrimaryKey private int no;
    private String name;
    private String address;

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}
4b9b3361

Ответ 1

Я нашел решение как и он работал

 public void updateNewCard(Realm realm, VisitingCardPOJO card) {
        realm.beginTransaction();
        VisitingCardPOJO toEdit = realm.where(VisitingCardPOJO.class)
                .equalTo("no", card.getNo()).findFirst();
        toEdit.setName(card.getName());
        toEdit.setAddress(card.getAddress());
        realm.commitTransaction();
    }

см. демо для Realm

Ответ 2

Фактически правильный способ сделать это - это

public void updateNewCard(Realm realm, VisitingCardPOJO card) {
    final int no = card.getNo();
    realm.executeTransaction(new Realm.Transaction() {
        @Override
        public void execute(Realm realm) {
            VisitingCardPOJO toEdit = realm.where(VisitingCardPOJO.class)
                .equalTo("no", no).findFirst();
            if(toEdit != null) {
                toEdit.setName(card.getName());
                toEdit.setAddress(card.getAddress());
            }
        }
    });
}