Android x Realm x ListView
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
使う方が楽なのか? ちょっと調べてみよう。