本日は、AndroidでRealmを使ってお気に入りに登録したデータをListViewで表示してみたいと思います。
(ListViewの使い方はListView の基本的な使い方 – Android 開発入門を参考にしてください)
お気に入りはソートの機能も実装してみたいのですが、 ソート機能はまたの機会にして、 今回は全件表示するだけにとどめようと思います。
お気に入り表示までの流れ
- Realmを利用する準備をする
- Realmからデータを全件抽出をする
- ListViewの1つ1つの項目にデータを設定していく
- データが設定された1つ1つの項目をListViewとして表示をする
となります。
1.Realmを利用する準備をする
//ListViewに格納するリスト ArrayList objects = new ArrayList<>(); //Realmを利用するためのファイル指定 RealmConfiguration config = new RealmConfiguration.Builder(mapsActivity) .name(FavoriteDataFile) .build(); //Realmをインスタンス化 Realm realm = Realm.getInstance(config); RealmQuery<FavoriteModel> query = realm.where(FavoriteModel.class);
※FavoriteModelはAndroidでRealmを使ってみた〜お気に入り機能の実装(其の一)〜を参考に別途クラスを準備してください!! これで準備は完了です。
2.Realmからデータを全件抽出をする
//Realmに存在するすべてのデータを取得する result = query.findAll();
全件抽出はとても簡単で、抽出する条件は色々と変更出来るので、 その辺りは次回以降に記載します。
3.ListViewの1つ1つの項目にデータを設定していく
for(int i = 0; i < result.size(); i++){ FavoriteModel favoriteModel = new FavoriteModel(); //Modelにそれぞれの値を格納していく favoriteModel.setId(result.get(i).getId()); favoriteModel.setName(result.get(i).getName()); //ModelをListViewのListに格納 objects.add(favoriteModel); }
抽出したデータのサイズだけfor文で回してArrayListに格納していきます。
4.データが設定された1つ1つの項目をListViewとして表示をする
//ListViewのListをAdapterに設定 favoriteAdapter = new FavoriteAdapter(getActivity() , 0 , list); ListView listView = (ListView)view.findViewById(R.id.favorite_list); //Adapterに設定されたそれぞれの値をListViewに表示する listView.setAdapter(favoriteAdapter)
以上です。
次回はソート機能を実装していきます!