如何在android中使用realm数据库更新行?

时间:2017-03-06 05:42:08

标签: android

这是我的代码

if (userDetailRealmModel.getuID() != i) {
      userDetailRealmModel.setUser_id(userDetailModelArrayList.get(i).getUser_id());
      userDetailRealmModel.setFirstname(userDetailModelArrayList.get(i).getFirstname());
      userDetailRealmModel.setLastname(userDetailModelArrayList.get(i).getLastname());
      userDetailRealmModel.setEmail(userDetailModelArrayList.get(i).getEmail());
      userDetailRealmModel.setPhone_no(userDetailModelArrayList.get(i).getPhone_no());
      userDetailRealmModel.setLatitude(userDetailModelArrayList.get(i).getLatitude());
      userDetailRealmModel.setLongitude(userDetailModelArrayList.get(i).getLongitude());
      userDetailRealmModel.setIs_private(userDetailModelArrayList.get(i).getIs_private());
      userDetailRealmModel.setCreation_datetime(userDetailModelArrayList.get(i).getCreation_datetime());
      userDetailRealmModel.setUpdate_datetime(userDetailModelArrayList.get(i).getUpdate_datetime());

      realm.copyToRealmOrUpdate(userDetailRealmModel);
      //userDetailRealmModelArray.add(userDetailRealmModel);  
    }

我想更新我的数据库,但它没有正常工作

2 个答案:

答案 0 :(得分:0)

如果userDetailModelArrayList包含RealmObjects列表,则只需使用

更新数据库即可
    if (userDetailRealmModel.getuID() != i){
       realm.beginTransaction();
       realm.copyToRealmOrUpdate(userDetailModelArrayList.get(i));
       realm.commitTransaction();
    }

它将使用object的主键更新您的领域数据库行。

如果列表中没有域对象,则必须按如下方式手动更新它:

   if (userDetailRealmModel.getuID() != i) {
          realm.beginTransaction();
          userDetailRealmModel.setUser_id(userDetailModelArrayList.get(i).getUser_id());
          userDetailRealmModel.setFirstname(userDetailModelArrayList.get(i).getFirstname());
          userDetailRealmModel.setLastname(userDetailModelArrayList.get(i).getLastname());
          userDetailRealmModel.setEmail(userDetailModelArrayList.get(i).getEmail());
          userDetailRealmModel.setPhone_no(userDetailModelArrayList.get(i).getPhone_no());
          userDetailRealmModel.setLatitude(userDetailModelArrayList.get(i).getLatitude());
          userDetailRealmModel.setLongitude(userDetailModelArrayList.get(i).getLongitude());
          userDetailRealmModel.setIs_private(userDetailModelArrayList.get(i).getIs_private());
          userDetailRealmModel.setCreation_datetime(userDetailModelArrayList.get(i).getCreation_datetime());
          userDetailRealmModel.setUpdate_datetime(userDetailModelArrayList.get(i).getUpdate_datetime());
          realm.copyToRealmOrUpdate(userDetailRealmModel);
          realm.commitTransaction(); 
        }

答案 1 :(得分:0)

试试这个

/var/run/ColorFollow.flag

更新

请卸载您的应用程序,然后再次清理build->重建和安装。

检查this