首页 > 解决方案 > 从 recyclerView 的特定位置删除项目

问题描述

我有一个recyclerView和一个List<>包含一些随机位置

我要做的就是recyclerViewposition存储在列表中的项目中删除项目。

标签: javaandroidarraylist

解决方案


您可以使用以下方法删除 RecyclerView 适配器中的单个项目:

List<YourData> list;

// position of your data in the list.
private removeItem(int position) {
  list.remove(position);
  notifyItemRemoved(position);
}

但是如果您需要按顺序删除多个项目,则不能使用它。以下将不起作用:

removeItem(3);
removeItem(36);
removeItem(54);

因为列表索引在第一次调用removeItem().

因此,您需要依赖于您的数据的 ID。例如,使用以下 User 类:

public class User {
  private long id;
  private String name;

  // constructor
  // setter
  // getter

}

您可以通过使用以下方法检查 id 来顺序删除多个项目:

// list of your User
List<User> users;

// id is your User id
private removeItem(int id) {
  for(int i = 0; i < users.size(); i++) {
    User user = users.get(i)
    if(user.getId() == id) {
      users.remove(i);
      break;
    }
  }
}

如果您知道 id,则可以使用它:

removeItem(3);
removeItem(36);
removeItem(54);

当然,您可以通过使用 id 列表添加另一种方法来删除项目:

private removeItems(List<Integer> ids) {
  for(Integer id: ids) {
    removeItem(id);
  }
}

推荐阅读