У меня есть RecyclerView с функцией пролистывания, чтобы открыть кнопку удаления и редактирования.
Я добавил: адаптер.notifyItemRemoved(position) и это:
adapter.notifyItemRangeChanged(0, adapter.getItemCount());
при нажатии открытой кнопки удаления срабатывает анимация удаления элемента и
Элемент удаляется из моей базы данных
НО затем удаленный элемент снова появляется в моем представлении recyclerview. Когда я меняю действие и возвращаюсь к действию с recyclerview, список, который я должен видеть, хороший.
Если я удалю код «notifyItemRangeChanged», список обновится с помощью последний элемент повторен.
Я думаю, что getItemCount моего адаптера не обновляется должным образом. поэтому я попробовал по-другому — сначала вызвать свой метод, который генерирует список. Это помогло, НО моя анимация удаления элемента теперь исчезла, потому что, я думаю, она просто пропускает повторную генерацию списка....
Есть идеи?
Заранее благодарим вас за отзыв!
****************** UPDATE - ADDING ADAPTER CLASS CODE ****************
public class RVCategoryAdapter extends RecyclerView.Adapter {
Context context;
List categoryItemList;
public RVCategoryAdapter(Context context, List categoryItemList) {
this.context = context;
this.categoryItemList = categoryItemList;
}
@NonNull
@Override
public CategoryViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(context).inflate(R.layout.category_item_layout, parent, false);
return new CategoryViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull CategoryViewHolder holder, final int position) {
final int categoryID;
final String categoryTitle;
Glide.with(context).load(categoryItemList.get(position).getImage()).into(holder.ivCategoryIcon);
holder.txtCatID.setText(""+categoryItemList.get(position).getCategoryID());
holder.txtCategoryTitle.setText(categoryItemList.get(position).getTitle());
holder.txtCategoryDesc.setText(categoryItemList.get(position).getDescription());
categoryID = Integer.parseInt(holder.txtCatID.getText().toString());
categoryTitle = holder.txtCategoryTitle.getText().toString();
holder.cardViewItemLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, NotesListActivity.class);
intent.putExtra("CategoryID", categoryID);
intent.putExtra("CategoryTitle", categoryTitle);
context.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return categoryItemList.size();
}
}
Подробнее здесь: https://stackoverflow.com/questions/609 ... item-count
Удаление элемента Android Recyclerview не обновляет количество элементов адаптера ⇐ Android
Форум для тех, кто программирует под Android
1719908599
Anonymous
У меня есть RecyclerView с функцией пролистывания, чтобы открыть кнопку удаления и редактирования.
Я добавил: адаптер.notifyItemRemoved(position) и это:
adapter.notifyItemRangeChanged(0, adapter.getItemCount());
при нажатии открытой кнопки удаления срабатывает анимация удаления элемента и
Элемент удаляется из моей базы данных
НО затем удаленный элемент снова появляется в моем представлении recyclerview. Когда я меняю действие и возвращаюсь к действию с recyclerview, список, который я должен видеть, хороший.
Если я удалю код «notifyItemRangeChanged», список обновится с помощью последний элемент повторен.
Я думаю, что getItemCount моего адаптера не обновляется должным образом. поэтому я попробовал по-другому — сначала вызвать свой метод, который генерирует список. Это помогло, НО моя анимация удаления элемента теперь исчезла, потому что, я думаю, она просто пропускает повторную генерацию списка....
Есть идеи?
Заранее благодарим вас за отзыв!
****************** UPDATE - ADDING ADAPTER CLASS CODE ****************
public class RVCategoryAdapter extends RecyclerView.Adapter {
Context context;
List categoryItemList;
public RVCategoryAdapter(Context context, List categoryItemList) {
this.context = context;
this.categoryItemList = categoryItemList;
}
@NonNull
@Override
public CategoryViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(context).inflate(R.layout.category_item_layout, parent, false);
return new CategoryViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull CategoryViewHolder holder, final int position) {
final int categoryID;
final String categoryTitle;
Glide.with(context).load(categoryItemList.get(position).getImage()).into(holder.ivCategoryIcon);
holder.txtCatID.setText(""+categoryItemList.get(position).getCategoryID());
holder.txtCategoryTitle.setText(categoryItemList.get(position).getTitle());
holder.txtCategoryDesc.setText(categoryItemList.get(position).getDescription());
categoryID = Integer.parseInt(holder.txtCatID.getText().toString());
categoryTitle = holder.txtCategoryTitle.getText().toString();
holder.cardViewItemLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, NotesListActivity.class);
intent.putExtra("CategoryID", categoryID);
intent.putExtra("CategoryTitle", categoryTitle);
context.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return categoryItemList.size();
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/60978888/android-recyclerview-removing-item-does-not-update-adapters-get-item-count[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия