我的应用程序中有一个数据库,并在 recyclerView 中显示它。
在 recyclerView 的每个项目中,我都有一个用于删除项目的 ImageView。
我想点击 imageView 并从数据库和 recyclerView 中删除项目。
这是 mayAdapter:
public class ShoppingCartAdapter extends RecyclerView.Adapter<ShoppingCartAdapter.ShoppingCartViewHolder>{
private final Context context;
private final List<DataModelListShoppingCart> shoppingCartList;
private ShopDatabaseOpenHelper openHelper;
public ShoppingCartAdapter(Context context, List<DataModelListShoppingCart> shoppingCartList, ShopDatabaseOpenHelper openHelper){
this.context = context;
this.shoppingCartList = shoppingCartList;
this.openHelper = openHelper;
}
@NonNull
@Override
public ShoppingCartAdapter.ShoppingCartViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.model_shopping_cart_layout,parent,false);
return new ShoppingCartAdapter.ShoppingCartViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ShoppingCartAdapter.ShoppingCartViewHolder holder, final int position) {
final DataModelListShoppingCart shoppingCart = shoppingCartList.get(position);
holder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openHelper.deleteProduct(shoppingCart.getId());
notifyItemRemoved(position);
}
});
}
@Override
public int getItemCount() {
return shoppingCartList.size();
}
public class ShoppingCartViewHolder extends RecyclerView.ViewHolder{
private ImageView delete;
public ShoppingCartViewHolder(View itemView) {
super(itemView);
delete = itemView.findViewById(R.id.image_view_clear_shopping_cart);
}
}
}
我为 imageView 设置了 OnClickListener 并从数据库中删除了该项目,但该项目仍在此处。当我回到 Activity item deleted 时。
如何在点击图片 View 时立即删除项目?
最佳答案
也只需从列表中删除该项目即可。
holder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openHelper.deleteProduct(shoppingCart.getId());
shoppingCartList.remove(position);
notifyItemRemoved(position);
}
});
关于android - 如何从 recyclerView 中删除一个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51338689/