How to save model data using realm?

 ̄綄美尐妖づ 提交于 2019-12-25 01:07:22

问题


I am developing a chat app and successfully saved User model class to the realm but now I want to save messages to the realm so that when user start app able to see previous chat history and messages.

below my SavedMessages model class

@RealmClass

public class SaveMessage extends RealmObject {

private int mId;
private String mUsername;
private String mContent;
private Date mCreatedAt;
private boolean mRightMessage;
private String mPictureString;
private String mType;

public SaveMessage(int id, String username, String content, Date createdAt, boolean isRightMessage) {
    mId = id;
    mUsername = username;
    mContent = content;
    mCreatedAt = createdAt;
    mRightMessage = isRightMessage;
}

public SaveMessage() {

}

public int getId() {
    return mId;
}

public String getUsername() {
    return mUsername;
}

public String getContent() {
    return mContent;
}

public Date getDate() {
    return mCreatedAt;
}

public void setDate(Date createdAt) {
    mCreatedAt = createdAt;
}


public boolean ismRightMessage() {
    return mRightMessage;
}

public int getmId() {
    return mId;
}

public void setmId(int mId) {
    this.mId = mId;
}

public String getmUsername() {
    return mUsername;
}

public void setmUsername(String mUsername) {
    this.mUsername = mUsername;
}

public String getmContent() {
    return mContent;
}

public void setmContent(String mContent) {
    this.mContent = mContent;
}


public boolean ismRightMessage(String isRightMessage) {
    return mRightMessage;
}

public void setmRightMessage(boolean mRightMessage) {
    this.mRightMessage = mRightMessage;
}

public String getPictureString() {
    return mPictureString;
}

public void setPictureString(String pictureString) {
    mPictureString = pictureString;
}

public String getType() {
    return mType;
}

public void setType(String type) {
    mType = type;
}

}

below User.java

@RealmClass
public class User extends RealmObject implements IChatUser {
    Integer id;
    String name;
    @Ignore
    Bitmap icon;

    public User() {
    }

    public User(int id, String name, Bitmap icon) {
        this.id = id;
        this.name = name;
        this.icon = icon;
    }

    @Override
    public String getId() {
        return this.id.toString();
    }

    @Override
    public String getName() {
        return this.name;
    }

    public void setId(Integer id) {
        this.id = id;
    }

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

    @Override
    public Bitmap getIcon() {
        return this.icon;
    }


    @Override
    public void setIcon(Bitmap icon) {
        this.icon = icon;
    }
}

below Realm implementation where I have implemented realm database

        Realm.init(this);
        realm = Realm.getDefaultInstance();
        realm.beginTransaction();

        User userModel =  realm.createObject(User.class);


        Integer userId = Integer.valueOf("0");
        String userName = "Michael";

        userModel.setId(userId);
        userModel.setName(userName);
        //userModel.setIcon("icon");
        Integer userId1 = Integer.valueOf("1");
        String userName1 = "Lily";



        userModel.setId(userId1);
        userModel.setName(userName1);


        realm.commitTransaction();


        RealmResults<User> userModels = realm.where(User.class).findAll();
        for (User user : userModels) {
            Integer getId = Integer.valueOf(user.getId());
            String getName = user.getName();

        }
 SaveMessage saveModel = realm.createObject(SaveMessage.class);

    saveModel.setmId(Integer.parseInt("id"));
    saveModel.setmUsername("userName");
    saveModel.setmContent("content");
    saveModel.ismRightMessage("isRightMessage");

    RealmResults<SaveMessage> savesModels = realm.where(SaveMessage.class).findAll();
    for (SaveMessage saveMessage : savesModels) {
        Integer getId = saveMessage.getId();
        String getName = saveMessage.getUsername();
        String getContent = saveMessage.getContent();
        String rightMessage = String.valueOf(saveMessage.ismRightMessage());

        realm.commitTransaction();

    }

        //Load saved messages
        loadMessages(realm);

来源:https://stackoverflow.com/questions/55995015/how-to-save-model-data-using-realm

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!