在Realm android中更新语句

时间:2014-12-01 07:35:57

标签: android realm

如何在android中使用realm DB更新已存在的值?

我一直在尝试更新它,但它只是添加为新值而不是覆盖它

3 个答案:

答案 0 :(得分:39)

使用方法realm.copyToRealmOrUpdate()更新现有对象及其所有字段的另一种方法是使用方法Object obj = new Object(); obj.setField1(field1); obj.setField2(field2); realm.beginTransaction(); realm.copyToRealmOrUpdate(obj); realm.commitTransaction();

int[]

如果您的对象有主键,此方法将自动更新对象,而不会出现重复的对象:)

更多信息:copyToRealmOrUpdate()

答案 1 :(得分:6)

您可以使用insertOrUpdate方法来执行此操作。希望这有帮助

  Realm.getDefaultInstance().executeTransaction(new Realm.Transaction() {
                @Override
                public void execute(Realm realm) {

                    objectToEdit.setNewValue("string");
                    realm.insertOrUpdate();
                }
            });

答案 2 :(得分:0)

Realm realm = Realm.getDefaultInstance();
    OrderedRealmCollection<Practice> orderedRealmCollection = 
             realm.where(Practice.class)
            .contains("key", "matchig value")
            .findAll();

    if(orderedRealmCollection.size()!=0){
        Practice practice = orderedRealmCollection.first();
        Realm.getDefaultInstance().executeTransaction(new Realm.Transaction() {
            @Override
            public void execute(Realm realm) {
                practice.setUpdate_practice_steps(""+steps);
                realm.insertOrUpdate(practice);
            }
        });
    }