baseadapter 删除 item
时间: 2024-03-22 10:40:07 浏览: 14
要删除 BaseAdapter 中的 item,需要进行以下步骤:
1. 在 BaseAdapter 中添加一个方法用于删除 item,例如:
```
public void removeItem(int position) {
// 从数据源中移除对应的数据
dataList.remove(position);
// 通知适配器数据已经发生变化
notifyDataSetChanged();
}
```
2. 在 ListView 或 RecyclerView 中设置 item 的长按监听器,在监听器中调用上面的方法进行删除,例如:
```
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
// 删除对应的 item
adapter.removeItem(position);
return true;
}
});
```
或者
```
recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
return false;
}
@Override
public void onTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
// 点击事件处理
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
@Override
public void onLongPress(@NonNull MotionEvent e) {
// 长按事件处理
View childView = recyclerView.findChildViewUnder(e.getX(), e.getY());
if (childView != null) {
int position = recyclerView.getChildAdapterPosition(childView);
adapter.removeItem(position);
}
}
});
```