Sugar ORM Android应用程序在导航到新屏幕

时间:2016-04-22 07:46:58

标签: java android android-studio sugarorm

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

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

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

从我的应用程序的主视图导航到它的详细视图时,我按如下方式创建意图/活动:

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"我参与新活动后再次点击数据库,但我想知道上述原因为什么不起作用。我做错了吗?

1 个答案:

答案 0 :(得分:2)

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

从:

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

为:

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

这解决了我遗漏的id字段

的问题