2014-12-06 3 views
2

Это моя функция удаления, и это делает найти workday1 объект:Android realm.io: Row/Объект больше не действует

public static void delete(Context context, Workday workday) { 
    Realm realm = getRealm(context); 
    realm.beginTransaction(); 

    Workday workday1 = realm.where(Workday.class) 
      .equalTo("date", workday.getDate()) 
      .equalTo("hours", workday.getHours()) 
      .equalTo("minutes", workday.getMinutes()) 
      .findFirst(); 

    workday1.removeFromRealm(); 
    realm.commitTransaction(); 
} 

enter image description here

Когда он выполняет removeFromRealm метод он выходит из строя:

java.lang.IllegalStateException: Illegal State: Row/Object is no longer valid to operate on. Удалено?

Как это исправить? Любая помощь будет принята с благодарностью.

UPDATE (я могу распечатать содержимое возвращенное следующим способом):

Workday workday1 = realm.where(Workday.class) 
      .equalTo("date", workday.getDate()) 
      .equalTo("hours", workday.getHours()) 
      .equalTo("minutes", workday.getMinutes()) 
      .findFirst(); 

    System.out.println("--------------------------------"); 
    System.out.println(workday1.getHours()); 

enter image description here

+0

Можете ли вы получить доступ к объекту ok перед удалениемFromRealm()? например распечатать? – bmunk

+0

Да, я могу, проверьте мое обновление, пожалуйста. – Jdruwe

+0

Если это то, что вы можете реплицировать, я предлагаю вам создать проблему github на https://github.com/realm/realm-java/issues – bmunk

ответ

2

Вы пытаетесь удалить объект, который не совершил в Realm еще.

В этом конкретном случае, если по какой-то причине вы не хотите больше фиксировать объект, вы можете просто отменить транзакцию.

+0

Я запрашиваю объект, а затем пытаюсь удалить его в транзакции. Я не вижу, что я делаю неправильно, следуя документации: http://realm.io/docs/java/0.75.0/#deletion – Jdruwe

+0

Какую версию Realm вы используете? Возможно, вы используете метод close(), где он не нужен – Emanuelez

+0

Я использую следующее в моей конструкции градации: io.realm: realm-android: 0.75.1 – Jdruwe

0

В моем случае проблема заключалась в том, что тот же объект, который я удалял, был в адаптере. После того, как я сделал адаптер, расширяйте RealmBaseAdapter, проблема остановлена.