0

私は(私の最初の)Androidアプリケーションを作成していますが、db4oの使用に少し戸惑っています。

listView がある 1 つのアクティビティがあり、ユーザーにオブジェクトを選択させます。次に、一連のインテントを介してこのオブジェクトを他のアクティビティに渡し (フィールドに入力するため)、メイン アクティビティに戻ります。

しかし、問題は、オブジェクトを渡すと (シリアル化可能)、インテントから取得したオブジェクトが、入力したオブジェクトと同じではないことです (デバッグで確認すると、ID が異なります)。すべてのフィールドは同じですが、「同じ」オブジェクトではありません。

そのため、更新されたオブジェクトを db4o に保存しようとすると、認識されず、double が保存されます。

私は2つの回避策を見つけました:

  • また、「元の/変更されていない」オブジェクトを渡し、それを使用して db4o 参照を (QBE を介して) 取得し、そのオブジェクトのフィールドを変更されたオブジェクトの値で更新します。

  • (オブジェクトを渡すために) インテントを使用する必要がないようにグローバル変数を使用する

しかし、どちらも私には本当に悪いように見えますか?回避策ではなく、本当の解決策は何ですか?

4

1 に答える 1

0

シングルトンを使用して、オブジェクトと、他のクラス (?) が設定する必要があるフィールドを格納して、誰もがアクセスできるようにすることができます。この説明でのインテントの使用については明確ではありません。

于 2013-03-27T15:29:51.207 に答える