私は(私の最初の)Androidアプリケーションを作成していますが、db4oの使用に少し戸惑っています。
listView がある 1 つのアクティビティがあり、ユーザーにオブジェクトを選択させます。次に、一連のインテントを介してこのオブジェクトを他のアクティビティに渡し (フィールドに入力するため)、メイン アクティビティに戻ります。
しかし、問題は、オブジェクトを渡すと (シリアル化可能)、インテントから取得したオブジェクトが、入力したオブジェクトと同じではないことです (デバッグで確認すると、ID が異なります)。すべてのフィールドは同じですが、「同じ」オブジェクトではありません。
そのため、更新されたオブジェクトを db4o に保存しようとすると、認識されず、double が保存されます。
私は2つの回避策を見つけました:
また、「元の/変更されていない」オブジェクトを渡し、それを使用して db4o 参照を (QBE を介して) 取得し、そのオブジェクトのフィールドを変更されたオブジェクトの値で更新します。
(オブジェクトを渡すために) インテントを使用する必要がないようにグローバル変数を使用する
しかし、どちらも私には本当に悪いように見えますか?回避策ではなく、本当の解決策は何ですか?