How to set primary key auto increment in realm android

android, realm

Solution

In a transaction, you can always reliably access the current maximum ID, based on which you can increment that and use it as the basis for the next ID.

 realm.executeTransaction(new Realm.Transaction() { // must be in transaction for this to work
     @Override
     public void execute(Realm realm) {
         // increment index
         Number currentIdNum = realm.where(users.class).max(usersFields.ID);
         int nextId;
         if(currentIdNum == null) {
            nextId = 1;
         } else {
            nextId = currentIdNum.intValue() + 1;
         }
         users user = new users(); // unmanaged
         user.setId(nextId);
         //...
         realm.insertOrUpdate(user); // using insert API
     }
 }

Problem

I want to set primary key auto increment for my table. Here is my Class. I have set primary key but I want it to be auto increment primary key. ``` public class users extends RealmObject { @PrimaryKey private int id; private long icn; private String name; private String email; private String password; private int phone; public String getName() { return name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public long getIcn() { return icn; } public void setIcn(long icn) { this.icn = icn; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getPhone() { return phone; } public void setPhone(int phone) { this.phone = phone; } ``` } Thanks in Advance.

Original source

Related problems