困ったこと
Realmでデータを扱えるようになったので新しいモデルクラスを作成して2つ目のテーブルを作成するイメージで追加したらRealmのインスタンス作成時にエラーとなってしまった。
GroupEditActivity.kt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
//ArrayList変数定義 val grouparraylist = arrayListOf<String?>() //Realmのインスタンス作成 val realm = Realm.getDefaultInstance() // 全取得 val grouplist = realm.where<GroupList>().findAll() //Realmのデータ分だけ繰り返し for(i in 0 until grouplist.size){ //Realmから抽出したグループ名をarraylistに格納する。 grouparraylist.add(grouplist[i]?.groupname) println("i = $i") } // インスタンスを閉じる realm.close() |
GroupList.kt
1 2 3 4 5 |
open class GroupList( @PrimaryKey var id: Int = 0, var groupname: String = "" ) : RealmObject() |
ここに新たにモデルクラス「MemberList.kt」を追加した。
MemberList.kt
1 2 3 4 5 6 |
open class MemberList( @PrimaryKey var id: Int = 0, var name: String = "", var brake_flag: Int = 0 ) : RealmObject() |
すると、以下でエラーとなりアプリが落ちてしまう。
1 2 |
//Realmのデータ分だけ繰り返し for(i in 0 until grouplist.size){ |
解決方法
参考にしたのは以下のサイト。
404 Not Found - Qiita - Qiita
どうやら、インスタンスを生成するときにConfigで名前を付けてあげてわかるようにしてあげないといけないみたい。
GroupEditActivity.kt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//ArrayList変数定義 val grouparraylist = arrayListOf<String?>() //Realmのインスタンス作成 val groupConfig = RealmConfiguration.Builder() .name("Group.realm") .schemaVersion(1) .build() val groupRealm = Realm.getInstance(groupConfig) // 全取得 val grouplist = groupRealm.where<GroupList>().findAll() //Realmのデータ文だけ繰り返し for(i in 0 until grouplist.size){ //Realmから抽出したグループ名をarraylistに格納する。 grouparraylist.add(grouplist[i]?.groupname) println("i = $i") } // インスタンスを閉じる groupRealm.close() |
こうしたら、GroupList.kt、MemberList.ktのモデルクラスが2つあってもきちんと実行されました。
コメント