android - 如何从 recyclerView 中删除一个项目?

标签 android database android-recyclerview

我的应用程序中有一个数据库,并在 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/

相关文章:

java - 如何避免 LOCATION_SERVICE 的 NullPointerException?

sql - 还有其他方法可以编写此查询吗?(我得到 "Subquery returned more than 1 value error"

android - 使用 RecyclerView 时如何让 cardView 适配屏幕?

android - 禁用内部 RecyclerView 的触摸

java - 使用 Recycler View 从列表中选择元素

android - 我想在 osmdroid 中添加多语言

Android 导航组件 Unresolved reference

android - 如何使用拉边手势调整 View 大小?

mysql - 在 "Column Name"上创建外键时出错(检查数据类型)?

ruby-on-rails - Rails 迁移问题 : disk image is malformed?