Realmで簡単なクエリを実行し、MyModelオブジェクトのリストを取得し、後でそれを私のアプリのどこかで使用する必要があります。レルムを照会すると、各オブジェクトにヌル値がありますが、のtoStringは期待値を返します。Androidレルム - findAllはnullパラメータを持つオブジェクトを返します
モデル:
@RealmClass
public class MyModel extends RealmObject implements Serializable {
public static final String KEY_MODEL = "key_myModel";
@PrimaryKey
private int id;
private String myStr;
private int myInt;
//.... getters and setters
@Override
public String toString() {
return "id = " + id
+ "\nmyStr = " + myStr
+ "\nmyInt = " + myInt;
}
}
は私が価値保存するにはどうすればよい:
public static void storeModel(MyModel model) {
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.copyToRealm(model);
realm.commitTransaction();
}
をどのように取得しないオブジェクト:
public static RealmList<MyModel> getNewElementsFromIndex(int indexFrom) {
Realm realm = Realm.getDefaultInstance();
RealmResults<MyModel> allValues = realm.where(MyModel).greaterThan("id", indexFrom).findAll();
RealmList<MyModel> finalList = new RealmList<MyModel>();
finalList.addAll(allValues.subList(0, allValues.size()));
return finalList;
}
私はgetNewElementsFromIndex(値)を呼び出し私はアイテムのリストを取得しますが、このリストのすべてのアイテムは、 ameter myStr = nullおよびmyInt = 0。
私は間違っていますか?
'allValues'を返すのはなぜですか? –
具体的な理由はありません...私はまだ同じ結果を持っています - >オブジェクト内のNULLパラメータ。 – Bugdr0id
1.)あなたはRealmResultsを使うべきです2)。あなたは 'getInstance()'で開いたRealmインスタンスを閉じていません。3)あなたが記述したものは、文書化された動作です。 – EpicPandaForce