Android x Realm x ListView
概要
Android で DB に Realm を採用してデータを管理。
ListView で表示するまでを行う。
Realm の導入
Java Docs - Realm is a mobile database/ a replacement for SQLite & Core Data にある通り、以下を追記する。
app/build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "io.realm:realm-gradle-plugin:0.88.2"
}
}
apply plugin: 'realm-android'
Sync 実行すれば Realm が使えるようになる。
Realm インスタンスの取得
ここの通りにやったら早速 deprecated !? (困惑
こっちに Best Practices として記載がありこちらが推奨される実装、と。
適当に作った MyApp プロジェクトで下記を実装してみる。
MyApp.java
public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(this).build(); Realm.setDefaultConfiguration(realmConfiguration); } }
MyActivity.java
public class MyActivity extends Activity { private Realm realm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); realm = Realm.getDefaultInstance(); } @Override protected void onDestroy() { super.onDestroy(); realm.close(); } }
とりあえず期待通りの動作ができた。
表示
RealmRecyclerView とかあるみたいだけどとりあえずただの ListView に表示してみる。
RealmQuery<MyModel> query = realm.where(MyModel.class);
RealmResults<MyModel> result = query.findAll();
で全件取得できるので ArrayAdapter に突っ込めば表示が確認できた。
その他
RealmRecyclerView 使う方が楽なのか? ちょっと調べてみよう。