Android Realm Retrofit关系错误

时间:2015-03-15 02:29:55

标签: java android gson retrofit realm

我在解决所有POJO和所有设置问题时遇到问题,以便正确解析我的JSON。

我对Android开发相当新,所以修复可能很简单。

我能够在没有Realm的情况下使用它。我想修改我的POJO来扩展RealmObject。我的问题是与我的关系。我的数据已设置好,因此我有一个WorkOrder类和一个WorkOrderItem类。 WorkOrder包含许多WorkOrderItem。没有领域,我在我的POJO中将其定义为

private List<WorkOrderItem> workOrderItems = new ArrayList<WorkOrderItem>();

当我修改它以扩展RealmObject时,我开始遇到问题。我试过了

private RealmList<WorkOrderItem> workOrderItems;

以及

private RealmList<WorkOrderItem> workOrderItems = new RealmList<WorkOrderItem>();

无论哪种方式,我都会继续收到以下错误:

Error:(831, 82) error: incompatible types: List<WorkOrderItem> cannot be converted to RealmList<WorkOrderItem>

我按照文档中的建议设置了我的GsonConverter。

我已经阅读了所有文档和我在网上找到的所有内容,但仍未找到解决方案。对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

根据要求回拨你可能会得到List <WorkOrderItem> 所以我认为您需要从列表中创建Realmlist <WorkOrderItem>

您需要有两个对象WorkOrderItem和其他WorkOrderItemRealm extends RealmObject

例如:

List<WorkOrderItem> mWorkOrderList...
RealmList<WorkOrderItem> mRealmList... //WorkOrderItem need to be a RealmObject


...new Callback<List<WorkOrderItem> mWorkOrderList>() {

    @Override
    public void success(List<WorkOrderItem> mWorkOrderList, Response response) {

        for(WorkOrderItem mWorkOrderItem : mWorkOrderList){

            //create WorkOrderItemRealm
            WorkOrderItemRealm mWorkOrderItemRealm = realm.createObject(WorkOrderItemRealm.class); 

            //mWorkOrderItemRealm.set...(mWorkOrderItem.get...());

            mRealmList.add(WorkOrderItemRealm);
        }
    }

    @Override
    public void failure(RetrofitError error) {

    }
});