Итак, у меня есть модель представления, в которой будет храниться HashMap с различными продуктами, этот хэш-файл будет обновлен / удален / создан, а затем мне нужно преобразовать этот хэш-файл в список, поэтому в своем пользовательском интерфейсе я просто возвращаю измененный список
Теперь это моя модель представления
class SharedViewModel: ViewModel() {
private val cartHashMap = MutableLiveData<HashMap<String,Cart>>()
private var sharedHashMap = HashMap<String,Cart>()
fun setProductSelectedHashMap(productId:String,productSelected:Cart){
sharedHashMap[productId] = productSelected
cartHashMap.value = sharedHashMap
}
fun removeSelectedProduct(productId:String){
sharedHashMap.remove(productId)
cartHashMap.value = sharedHashMap
}
fun updateSelectedHashMap(productId:String,quantity:Int){
val productCartSelected = sharedHashMap[productId]
productCartSelected?.quantity = quantity
sharedHashMap[productId] = productCartSelected!!
cartHashMap.value = sharedHashMap
}
}
Итак, у меня есть хеш-карта, которую я обновляю из другого источника, эта хеш-карта будет содержать список продуктов, которые будут удалены, обновлены или добавлены к этой карте.
Каждый раз, когда это происходит, я хочу возвращать к своему представлению с liveata список, который будет точно содержать то, что содержит мой HashMap, но я нахожу это путаницей в том, как преобразовать эти данные в список с преобразованиями
Я пробовал это
val getCart: LiveData<HashMap<String,Cart>> = Transformations.switchMap(cartHashMap, ::someFunc)
private fun someFunc(myCartHash: HashMap<String,Cart>) = mutableListOf(myCartHash.values)
Но ::someFunc
выдает ошибку, я использую switchMap, так как данные будут постоянно меняться и не будут отображаться один раз, Я хочу вернуть только мой обновленный hashmap в виде списка с тем же значением, которое содержит мое hashmap.
Как я могу это сделать?
Спасибо