- Android Studio 4.0.1
- Kotlin: 1.3.72
- realm:6.0.2
- Windows 10
インストール
bundle.gradle(project)
buildscript {
dependencies {
classpath "io.realm:realm-gradle-plugin:6.0.2"
}
}
bundle.gradle(app)
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'
初期化
Applicationクラスを作成し、その中でrealmの初期化をする
App.kt
package jp.co.sankosc.sample
import android.app.Application
import io.realm.Realm
class App : Application() {
override fun onCreate() {
super.onCreate()
Realm.init(this)
}
}
AndroidManifest.xml
<application
android:name=".App"
Modelを作る
引数なしのコンストラクタがないと、コンパイルが通らないみたいです。
User.kt
package jp.co.sankosc.sample
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import io.realm.annotations.Required
open class User(
@PrimaryKey var id : String = "",
@Required var name : String = ""
) : RealmObject()
Activityから使う
MainActivity.kt
package jp.co.sankosc.sample
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import io.realm.Realm
import java.util.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val id = UUID.randomUUID().toString()
val user = User(id, "nozaki")
val realm = Realm.getDefaultInstance()
realm.executeTransaction {
it.copyToRealm(user)
}
val count = realm.where(User::class.java).equalTo("id", id).count()
Log.d("sankosc", "count:" + count)
realm.close()
}
}