Transforming LiveData
Sometimes, the LiveData
you pass from the ViewModel to the UI layer needs to be processed first before displaying. For example, you can only select a part of the data or do some processing on it first. In the previous exercise, you filtered the data to only select popular movies from the current year.
To modify LiveData
, you can use the Transformations
class. It has two functions, Transformations.map
and Transformations.switchMap
, that you can use.
Transformations.map
modifies the value of LiveData
into another value. This can be used for tasks such as filtering, sorting, or formatting the data. For example, you can transform movieLiveData
into string LiveData
from the movie’s title:
private val movieLiveData: LiveData<Movie> val movieTitleLiveData : LiveData<String> = Transformations.map(movieLiveData) { it.title }
When movieLiveData
changes value, movieTitleLiveData
will also change based on the movie’...