Итак, я извлекаю некоторые элементы в свою базу данных, помещаю их в свой адаптер, но при попытке удалить его размер списка равен 0, что странно, потому что, когда я нажимаю на элемент для удаления списка, фактически заполняется с некоторыми элементами
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
fetchProducts(shopId)
rv_myshop.layoutManager = LinearLayoutManager(requireContext())
rv_myshop.addItemDecoration(
DividerItemDecoration(
requireContext(),
LinearLayoutManager.VERTICAL
)
)
}
private fun fetchProducts(shopId:String){
viewModel.fetchProducts(shopId).observe(viewLifecycleOwner, Observer { result ->
when(result){
is Resource.Loading -> { showProgress() }
is Resource.Success -> {
hideProgress()
adapter.setItems(result.data)
rv_myshop.adapter = adapter
if(adapter.itemCount == 0){
container_no_products.visibility = View.VISIBLE
}
}
is Resource.Failure -> { hideProgress() }
}
})
}
Пока все не работает нормально, этот код просто выводит мои данные и заполняет мой список! Хорошо, но теперь я пытаюсь удалить элемент, нажав кнопку «Удалить» в моем адаптере, и элементы не удаляются из массива, а массив показывает 0 элементов, когда в нем больше элементов ...
override fun onDeleteProductClick(position: Int) {
adapter.removeItem(position)
}
MyAdapter
var productsList = mutableListOf<Product>()
fun setItems(productsList:MutableList<Product>){
this.productsList = productsList
notifyDataSetChanged()
}
fun removeItem(position: Int){
productsList.removeAt(position)
notifyItemRemoved(position)
}
Итак, здесь, когда я пытаюсь removeItem
, он ничего не удаляет, потому что кажется, что список имеет размер 0, но я фактически установил этот список раньше с помощью setItems
Я потерян, я отладил программу, и этот список показывает размер 0, когда я уже получил значения
любой намек?