2014-12-01 48 views
18

Android'de realm DB kullanarak halihazırda var olan bir değeri nasıl güncellemeliyim? Güncelleme bildirimi Realm android

bunu güncellemek çalışıyorlar ama yeni bir değer sadece o

+0

bize çabaları (güncellemek çalıştığınız kodunuzda, ilgili kısımlarından) göstermek Lütfen yardımcı olur. Ancak o zaman size sorunun nerede olduğunu söyleyebiliriz. – DroidDev

+0

** örneğinin tam yanıtını http://stackoverflow.com/questions/30933229/update-realm-object-android** adresinden öğrenebilirsiniz. –

cevap

35

sizin Diyar DB içinde tüm alanları ile mevcut bir nesneyi güncellemek için başka bir yol overwritting değil gibi yöntem realm.copyToRealmOrUpdate() kullanıyor ekliyor:

Object obj = new Object(); 
obj.setField1(field1); 
obj.setField2(field2); 
realm.beginTransaction(); 
realm.copyToRealmOrUpdate(obj); 
realm.commitTransaction(); 

senin nesne varsa bir İlköğretim Anahtar, yinelenen nesneleri :)

diğer bilgiler olmadan otomatik olarak nesneyi güncelleyecektir bu yöntem:Kullanıcı insertOrUpdate yöntemi this.Hope bunu yapmak için yapabilirsiniz

+1

Nesnenin oluşturulmasından önce işlemin başlangıcından herhangi bir fayda elde edemezsiniz. Bu yüzden bu ilk satırı copyToRealmOrUpdate() 'den önce açıklığa kavuşturmayı öneririm. – bmunk

+0

Tavsiyemiz için teşekkürler, düzenleyin :) –

+0

Bu cevap tarihi geçmiş mi? realm.copyToRealmOrUpdate (obj); 'realm ile çalışıyorsanız gerekli değildir. Örneğin, örneğin Retrofit'i kullanıyorsanız gerekir: https://realm.io/docs/java/latest/#retrofit – Micro

6

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

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