BekaKK
BekaKK

Reputation: 2253

How to add elements in RealmList

This is a my RealmObject class

public class VinScannerHistoryModel extends RealmObject {
@Required
private String vinNumber;
@Required
private String userName;
@Required
private String status;

private RealmList<ImagesObject> imagesObjects;


public String getVinNumber() {
    return vinNumber;
}

public void setVinNumber(String vinNumber) {
    this.vinNumber = vinNumber;
}

public String getUserName() {
    return userName;
}

public void setUserName(String userName) {
    this.userName = userName;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public RealmList<ImagesObject> getImagesObjects() {
    return imagesObjects;
}

public void setImagesObjects(RealmList<ImagesObject> imagesObjects) {
    this.imagesObjects = imagesObjects;
}

}

This is a RealmList class

public class ImagesObject extends RealmObject {
public String getImageName() {
    return imageName;
}

public void setImageName(String imageName) {
    this.imageName = imageName;
}

private String imageName;

} I try to add some elements in my table,but in RealmList added last elements in for loop.This is a my code

 ImagesObject imagesObject = mRealm.createObject(ImagesObject.class);
    VinScannerHistoryModel vinScannerHistoryModel = mRealm.createObject(VinScannerHistoryModel.class);
    vinScannerHistoryModel.setVinNumber(vinNumber.getText().toString());
    vinScannerHistoryModel.setStatus(status);

    if(Global.imagePath!=null && Global.imagePath.size()>0)
    {
        for (int i = 0; i < Global.imagePath.size(); i++) {
            imagesObject.setImageName(Global.imagePath.get(i));
            vinScannerHistoryModel.getImagesObjects().add(imagesObject);

        }
    }
    vinScannerHistoryModel.setUserName(vinScannerModel.getName());
    mRealm.commitTransaction();

Global.imagePath is a String array and contains two elements and in RealmLis added last element twice How i can solve my problem? Thanks everyone

Upvotes: 0

Views: 1747

Answers (1)

Alvin Varghese
Alvin Varghese

Reputation: 689

Please try with the following snippet.

 ImagesObject imagesObject = mRealm.createObject(ImagesObject.class);
RealmList<ImagesObject> imagesObjectList = new RealmList();
VinScannerHistoryModel vinScannerHistoryModel = mRealm.createObject(VinScannerHistoryModel.class);
vinScannerHistoryModel.setVinNumber(vinNumber.getText().toString());
vinScannerHistoryModel.setStatus(status);

if(Global.imagePath!=null && Global.imagePath.size()>0)
{
    for (int i = 0; i < Global.imagePath.size(); i++) {
        imagesObject.setImageName(Global.imagePath.get(i));
        imagesObjectList.add(imagesObject);
    }
}
vinScannerHistoryModel.setImagesObjects(imagesObjectList);
vinScannerHistoryModel.setUserName(vinScannerModel.getName());
mRealm.commitTransaction();

Upvotes: 2

Related Questions