Transformations.switchMap проблема
На официальном сайте Android
Имеется код, который позволяет получать данные по изменяемому полю
MutableLiveData userIdLiveData = ...;
LiveData userLiveData = Transformations.switchMap(userIdLiveData, id ->
repository.getUserById(id));
void setUserId(String userId) {
this.userIdLiveData.setValue(userId);
}
Я хочу изменять, вводя поисковый запрос в SearchView.
Для этого у меня есть соответствующая переменная, и метод, который я буду дергать, при изменении текста в SearchView
private val query = mutableLiveData("")
fun handleSearchQuery(text: String?) {
query.value = text
}
fun <T> mutableLiveData(defaultValue: T? = null): MutableLiveData<T>{
val data = MutableLiveData<T>()
if(defaultValue != null){
data.value = defaultValue
}
return data
}
Но я не могу дописать его, кидает ошибки, он не видит trackName
private var songs : LiveData<Result<List<Song>>> = Transformations.switchMap(query, trackName ->
getSongsBySearch(trackName))
private fun getSongsBySearch(searchQuery: String): LiveData<Result<List<Song>>>{
return repository.getSongBySearchAlbumTerm(searchQuery)}
Нашел вот такой пример
private val query = MutableLiveData<String>()
private val userRepo = UserRepo()
val userNameResult: LiveData<List<User>> = Transformations.map(
query,
::temp
)
private fun temp(name: String) = userRepo.searchUserWithName(name)
Но у меня не видит метод, когда я пытаюсь вставить вместо ::temp