Size: a a a

StartAndroid Ru Chat

2021 April 07

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
у Вас там и так LiveData<List>
источник

DA

Dmitry Alekseyevich in StartAndroid Ru Chat
Так лист из двух типов (мне нужно со вторым работать только(
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
ок

val list = data.value?.removeAll { 
  it is ContactsEmploeeData && it.id == id
} ?: emptyList()
data.postValue(list)
источник

DA

Dmitry Alekseyevich in StartAndroid Ru Chat
нет там такого. Надо сначала вроде размапать, прикастить, потом уже удалять вроде и постить
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
Покажите саму LiveData
источник

DA

Dmitry Alekseyevich in StartAndroid Ru Chat
\
источник

/

//Adam in StartAndroid Ru Chat
Ребят, как исправить это ошибку?  skia: --- Failed to create image decoder with message 'unimplemented'
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
sealed class Test {
       class Test1 : Test()
       class Test2(val id: Int) : Test()
   }

   private val data = MutableLiveData<List<Test>>()

   init {
       val id = 0
       val list = data.value?.filterNot { it is Test.Test2 && it.id == id } ?: emptyList()
       data.postValue(list)
}


очень быстро для теста набросал, у меня так все работает
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
sealed class не обязателен, но я бы делал так
источник

DA

Dmitry Alekseyevich in StartAndroid Ru Chat
а где же удаление? ;D
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
filterNot.......
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
в list не будет элементов которые Test2 и с id == 0
источник

DA

Dmitry Alekseyevich in StartAndroid Ru Chat
Ааа, даже так можно. То есть он удалит все элементы с id 0?
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
он не удалит их, он их не добавит в результирующий list
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
list это новый список, который будет сформирован на основе data.value и фильтра. Затем этот список сетим в LiveData
источник

DA

Dmitry Alekseyevich in StartAndroid Ru Chat
Понял, думаю подойдет для моей логики. Сначала я выбираю один или несколько элементов (у выбранных будет флаг ```isChecked```и просто потом в филтре они все отпадут..
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
Удалять из data.value списка не создав новый список плохая идея. Потом можно наступить на грабли с DiffUtil, например, если не создавать новый список. Stream операторы по типу map, filter, removeAll всегда создают новый список.
источник

SP

Sergey Panov in StartAndroid Ru Chat
C DiffUtil есть проблемы даже если создавать новый список. Список новый будет, а итемы в нём старые. Можно создавать новые экземляры итемов при создании нового списка, но что будет с производительностью я не могу сказать.
источник

DA

Dmitry Alekseyevich in StartAndroid Ru Chat
Еще такой вопрос.
Вот логика.
Есть фрагмент А (основной) в котором вложен фрагмент Б и В
Во фрагменте Б я работаю со списком и отдаю size списка во фрагмент А, где сечу его в тулбар.
Так же во фрагменте А в тулбаре есть кнопка "Удалить". При нажатии на нее во фрагменте Б нужно вызвать метод удаления.

Сейчас во фрагменте Б есть интерфейс с методом, как раз через который эти фрагменты общаются.

Я хотел сделать во фрагменте А тоже интерфейс, но столкнулся с ошибкой иерархии.. Что-то такое. Предлагали вынести за пределы класса, но тогда как во фрагмете А получить доступ к методу интерфейса, чтобы клик повесить?
источник

VT

Vaqif Taqiyev in StartAndroid Ru Chat
Переслано от Vaqif Taqiyev
Друзья я учусь Java в андроид студио
источник