RoomによるLiveDataの生成
前回紹介したLiveDataに関して、今回も続けていきます。前回は、Roomによって取得したデータベースのデータをLiveDataに格納して、利用しました。そのRoomでは、データベースのデータをもとにLiveDataそのものを生成する機能があります。今回は、それを利用していきます。
なお、今回のサンプルデータは、GitHubから参照できます。
今回のアプリの概要
今回題材にするアプリの画面は、図1のようなものです。

前回まで題材にしたカクテルメモに似ていますが、リスト部分にカクテル名と金額が表示されています。そして、そのリストをタップすると、画面下部に選択したカクテルの名称と金額が表示されます(図2)。その金額は変更できるようになっており、変更した金額を保存すると、即座にリストに反映されるようになります。

これらの処理のうち、選択したカクテルの名称と金額の表示には、前回と同様の仕組みを利用し、データベースから読み出したデータをLiveDataに格納することで画面に表示されるようにします。また、入力した新しい金額のデータベースへの反映に関しても、前回と同様の処理とします。
今回問題としたいのは、リスト表示部分です。これらのカクテルデータは、あらかじめデータベースに格納されたリストデータです。そして、このリストデータそのものにLiveDataを利用することにします。