Android 安卓领域显然在创建列表,但随后表示它';s的尺寸是0
我正在开发一个android应用程序,它使用领域作为数据库 当用户安装此数据库时,该数据库中已包含一些数据。问题是一些领域对象有一个其他对象的列表,这些对象显然正在创建,因为我在调试器中看到了它,但是当我尝试访问这个列表时,比如Android 安卓领域显然在创建列表,但随后表示它';s的尺寸是0,android,database,debugging,realm,realm-list,Android,Database,Debugging,Realm,Realm List,我正在开发一个android应用程序,它使用领域作为数据库 当用户安装此数据库时,该数据库中已包含一些数据。问题是一些领域对象有一个其他对象的列表,这些对象显然正在创建,因为我在调试器中看到了它,但是当我尝试访问这个列表时,比如realmObject.getList.size()结果输出为0 更具体地说,我有这个模型: public class Muscle extends RealmObject{ @PrimaryKey private int id; privat
realmObject.getList.size()代码>结果输出为0
更具体地说,我有这个模型:
public class Muscle extends RealmObject{
@PrimaryKey
private int id;
private String name;
private RealmList<Routine> routines;
public Muscle(String name){
this.id = MyApplication.MuscleID.incrementAndGet();
this.name = name;
this.routines = new RealmList<Routine>();
}
public Muscle(){}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public RealmList<Routine> getRoutines() {
return routines;
}
}
还有更多,但这是相关的代码。我已经确保每个模型的id自动增加,工作正常,所有肌肉对象都插入到数据库中,我可以在我的应用程序中看到它们没有问题,但是例程显然是创建的,因为我在调试器中看到列表大小增加,id增加,但是当我尝试在适配器中访问它时,比如int workoutsNumber=muscle.getRoutines().size()代码>,工作次数变为0
我不知道这里有什么问题。在调试过程中,一切看起来都很好,除了一件事我不明白。调试器中的第一件事总是muscle=找不到局部变量“muscle”
这是一个屏幕截图,您可以看到正在有效地创建对象,例程列表被添加到肌肉对象中,您还可以看到我上面提到的错误:
那么,为什么在执行int workoutsNumber=muscle.getRoutines().size()时得到0代码>列表大小是否应为3
Routine cr1 = new Routine(getString(R.string.beginner_chest_1));
realm.copyToRealmOrUpdate(cr1);
chest.getRoutines().add(cr1);
应该是
Muscle chest = new Muscle(getString(R.string.chest));
Muscle managedChestProxy = realm.copyToRealmOrUpdate(chest);
Routine cr1 = new Routine(getString(R.string.beginner_chest_1));
Routine managedRoutineProxy = realm.copyToRealmOrUpdate(cr1);
managedChestProxy.getRoutines().add(managedRoutineProxy);
应该是
Muscle chest = new Muscle(getString(R.string.chest));
Muscle managedChestProxy = realm.copyToRealmOrUpdate(chest);
Routine cr1 = new Routine(getString(R.string.beginner_chest_1));
Routine managedRoutineProxy = realm.copyToRealmOrUpdate(cr1);
managedChestProxy.getRoutines().add(managedRoutineProxy);
工作得很有魅力!非常感谢你。工作得很有魅力!非常感谢你。
Muscle chest = new Muscle(getString(R.string.chest));
Muscle managedChestProxy = realm.copyToRealmOrUpdate(chest);
Routine cr1 = new Routine(getString(R.string.beginner_chest_1));
Routine managedRoutineProxy = realm.copyToRealmOrUpdate(cr1);
managedChestProxy.getRoutines().add(managedRoutineProxy);