前提・実現したいこと
Android StudioでRealmを使用しています。
データの読み込みを行い、該当データを更新後
更新後のデータを読み込みテキストボックスに表示したいです。
発生している問題・エラーメッセージ
特定のデータを読み込んだ後に値を更新し、再度読み込みを行い、テキストボックスへ表示しても
更新前の値が表示される。
該当のソースコード
・MainActivity.javaより一部抜粋。 テキストボックスNoに"HAKASE"を出力したいが"NATTO"が出力される。
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction(); SampleModel model = realm.createObject(SampleModel.class); model.setName("GODIVA"); model.setAge(21); SampleModel model2 = realm.createObject(SampleModel.class); model2.setName("IEKEI"); model2.setAge(21); SampleModel model3 = realm.createObject(SampleModel.class); model3.setName("NATTO"); model3.setAge(64); realm.commitTransaction(); RealmQuery<SampleModel> query = realm.where(SampleModel.class); query.equalTo("age",64); RealmResults<SampleModel> result = query.findAll(); realm.beginTransaction(); result.get(0).setName("HAKASE"); realm.commitTransaction(); query.equalTo("age",64); result = query.findAll(); for (int i=0;i<result.size();i++){ No.setText(result.get(i).getName()); //System.out.println(result.get(i).getName()); //System.out.println(result.get(i).getAge()); }
・SampleModel.javaのソースコードです。
package com.example.dbrealmj;
import io.realm.RealmObject;
public class SampleModel extends RealmObject {
private String name;
private int age;
public String getName() { return this.name; } public void setName(String name) { this.name = name; } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; }
}
試したこと
"HAKASE"の設定後、名称を変え
RealmQuery<SampleModel> query2 = realm.where(SampleModel.class);
query2.equalTo("age",64);
RealmResults<SampleModel> result2 = query.findAll();
for (int i=0;i<result2.size();i++){ No.setText(result2.get(i).getName());
としてみたが結果は同じだった。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。