Sugar ORM Android 应用程序在导航到新屏幕时丢失持久对象的 id 字段

Sugar ORM Android application loses persistent object's id field when navigating to new screen

我有一个 Sugar ORM 持久对象声明如下:

public class Trx extends SugarRecord implements Serializable {
...
}

请注意, 当您扩展 SugarRecord 时,您继承了一个 id 字段,用于唯一标识您的持久对象。

当从我的应用程序的主视图导航到它的详细视图时,我创建了 intent/activity 如下:

Trx selectedItem = (Trx)trxList.getItemAtPosition(position);
Intent intent = new Intent(this,TransactionViewActivity.class);
intent.putExtra(CommonThings.CURRENT_TRX_KEY,selectedItem);
startActivity(intent);

在详细视图中,我正在检索当前项目(在 onCreate() 中)如下:

trx = (Trx) getIntent().getExtras().get(CommonThings.CURRENT_TRX_KEY);

因此我的问题是:从 "extras" 中取出项目并调试后,id 字段丢失。

我当然可以做一个解决方法,需要将我的对象的 ID 作为 "extra" 传递,然后在我进入新的 activity 时再次访问数据库,但我想要知道为什么以上不起作用。我做错了什么吗?

我设法通过更改持久对象以使用 Sugar 注释而不是扩展 SugarRecord 来解决问题,即

来自:

public class Trx extends SugarRecord implements Serializable {
...
}

至:

@Table
public class Trx implements Serializable {
    private Long id;
...
}

这解决了我缺少 ID 字段的问题