![](/img/trans.png)
[英]Can't Save or Retrieve Data using Object Serializer in RecyclerView Android
[英]Can't save data Realm Android
我是 Realm 数据库的新手。 我想将数据保存到Realm,但即使我输入的数据还不存在也无法保存。
例子:
首先,我输入数据OA作为afdeling,001作为Blok,01作为Group Sample,1作为Pokok ke。 保存成功。
其次,我输入数据OA作为afdeling,001作为Blok,01作为Group Sample,2作为Pokok ke。 保存成功。
第三,我输入数据OB为afdeling,002为Blok,01为Group Sample,2为Pokok ke。 未能保存数据。 Toast 出现“数据已存在”。 即使我输入的数据还不存在。
这是检查数据是否已经存在的代码:
public <E extends RealmModel> boolean isParentIdExist(Class<E> eClass, String value) {
E data = mRealm.where(eClass).equalTo("parent_id", value).findFirst();
return data != null;
}
public <E extends RealmModel> boolean isPokokExist(Class<E> eClass, String value) {
E data = mRealm.where(eClass).equalTo("pokok_ke", value).findFirst();
return data != null;
}
public <E extends RealmModel> boolean isAfdelingExist(Class<E> eClass, String value) {
E data = mRealm.where(eClass).equalTo("afdeling", value).findFirst();
return data != null;
}
public <E extends RealmModel> boolean isBlokExist(Class<E> eClass, String value) {
E data = mRealm.where(eClass).equalTo("blok", value).findFirst();
return data != null;
}
public <E extends RealmModel> boolean isGroupSampleExist(Class<E> eClass, String value) {
E data = mRealm.where(eClass).equalTo("group_sample", value).findFirst();
return data != null;
}
这是保存数据的代码:
if (isParentIdExist(ModelAddTransaction.class, parent_id)) {
if (isAfdelingExist(ModelAddTransaction.class, afdeling) && isBlokExist(ModelAddTransaction.class, blok) && isGroupSampleExist(ModelAddTransaction.class, group_sample) && isPokokExist(ModelAddTransaction.class, pokok_ke)) {
Toast.makeText(AddTransaction.this, "Data is already exist", Toast.LENGTH_LONG).show();
} else {
tambahData();
Toast.makeText(AddTransaction.this, "Data added successfully", Toast.LENGTH_SHORT).show();
Intent moveViewMaster = new Intent(AddTransaction.this, ViewResult.class);
startActivity(moveViewMaster);
}
} else {
tambahData();
Toast.makeText(AddTransaction.this, "Data added successfully", Toast.LENGTH_SHORT).show();
Intent moveViewMaster = new Intent(AddTransaction.this, ViewResult.class);
startActivity(moveViewMaster);
}
这是 ModelAddTransaction:
class ModelAddTransaction extends RealmObject {
@PrimaryKey
private String id;
private String parent_id;
private String date;
private String afdeling;
private String pokok_ke;
}
设置您的项目并使用此代码插入数据。
public void saveData() {
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Number id = realm.where(AddToCartRealmModel.class).max("productID");
int key = (id == null) ? 1 : id.intValue() + 1;
AddToCartRealmModel addToCartModel = realm.createObject(AddToCartRealmModel.class, key);
try {
if (packageModel != null) {
realm.beginTransaction();
addToCartModel.setPackageName(packageModel.getServiceName());
addToCartModel.setProductPrice(packageModel.getPrice());
realm.insertOrUpdate(addToCartModel);
realm.commitTransaction();
} else {
System.out.println("Error");
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
finally {
if(realm!=null){
realm.close();
}
}
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.