我有一个recyclerView
和一个List<>
,其中包含一些随机位置
我要做的就是从存储在列表中的recyclerView
中删除position
项。
答案 0 :(得分:0)
更好的方法是从适配器中删除对象并调用notifyDatasetChanged
。
答案 1 :(得分:0)
从活动中,您可以循环显示要删除的物品位置列表
for(int i = 0; i< listitem.size(); i++){adapter.deleteItem(position);}
然后在您的适配器中实现removeItem函数:
public void deleteItem(int index) {
Dataset.remove(index);
notifyItemRemoved(index);
}
答案 2 :(得分:0)
您可以使用以下方法在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来获取数据。例如,使用以下用户类:
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);
}
}