Java 回收视图项目移除

Java 回收视图项目移除,java,android,android-recyclerview,Java,Android,Android Recyclerview,我正在尝试从recyclerview列表中删除特定项目,但我不知道如何处理它。我无法使用notifyItemRemoved方法,因为我得到一个错误,该错误表示无法从静态上下文中使用此方法。如您所见,我的大多数事件侦听器都位于适配器的视图保持架中,因为这样更方便 这是我的密码 public class CartListAdapter extends RecyclerView.Adapter<CartListAdapter.RestaurantHolder> { List&

我正在尝试从recyclerview列表中删除特定项目,但我不知道如何处理它。我无法使用notifyItemRemoved方法,因为我得到一个错误,该错误表示无法从静态上下文中使用此方法。如您所见,我的大多数事件侦听器都位于适配器的视图保持架中,因为这样更方便

这是我的密码

public class CartListAdapter extends RecyclerView.Adapter<CartListAdapter.RestaurantHolder> 
{

     List<CartItem> cartList;
    private static String LOG_TAG = "MyRecyclerViewAdapter";
    private static MyClickListener myClickListener;
    static Context context;

    public static class RestaurantHolder extends RecyclerView.ViewHolder
    {
        TextView cartItem;
        TextView cartPrice;
        TextView cartQuantity;
        ImageView increaseIcon;
        ImageView decreaseIcon;
        ImageView deleteIcon;
        int selectedPosition;
        int quantity;
        double price;
        Boolean priceStored = false;

        RestaurantHolder(View itemView)
        {
            super(itemView);
            cartItem = (TextView)itemView.findViewById(R.id.cartItem);
            cartPrice = (TextView)itemView.findViewById(R.id.cartItemPrice);
            cartQuantity = (TextView)itemView.findViewById(R.id.itemQuantity);
            increaseIcon = (ImageView)itemView.findViewById(R.id.increase);
            decreaseIcon = (ImageView)itemView.findViewById(R.id.decrease);
            deleteIcon = (ImageView)itemView.findViewById(R.id.delete);

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    selectedPosition = getPosition();
                    Log.i(LOG_TAG,"Position = "+selectedPosition );
                }
            });

            increaseIcon.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    if(!priceStored)
                        price = Double.parseDouble(cartPrice.getText().toString());

                    priceStored = true;
                    quantity = Integer.parseInt(cartQuantity.getText().toString()) + 1;
                    cartQuantity.setText(String.valueOf(quantity));

                    cartPrice.setText(String.valueOf(price * quantity));

                }
            });
            decreaseIcon.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if(quantity > 1) {
                        quantity = Integer.parseInt(cartQuantity.getText().toString()) - 1;
                        cartQuantity.setText(String.valueOf(quantity));
                        cartPrice.setText(String.valueOf(Double.parseDouble(cartPrice.getText().toString())-price));
                    }else{
                        Toast.makeText(context,"Minimum order limit",Toast.LENGTH_SHORT).show();
                    }
                }
            });

            deleteIcon.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    selectedPosition = getPosition();
                    Log.i(LOG_TAG,"Removal Position = "+selectedPosition );

                    //remove(selectedPosition);
                }
            });
        }
    }

    CartListAdapter(Context context)
    {
        this.context = context;
        cartList = new ArrayList<CartItem>();
    }

    public void addItem(CartItem cartItem)
    {

        cartList.add(cartItem);

    }

    public void remove(int position)
    {
        cartList.remove(position);
        notifyItemRemoved(position);
    }



    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView)
    {
        super.onAttachedToRecyclerView(recyclerView);
}

    @Override
    public RestaurantHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cart_item,viewGroup,false);
        RestaurantHolder restaurantHolder = new RestaurantHolder(view);
        return restaurantHolder;
    }

    @Override
    public void onBindViewHolder(RestaurantHolder restaurantHolder, int i) {

        restaurantHolder.cartQuantity.setText(String.valueOf(cartList.get(i).quantity));
        restaurantHolder.cartPrice.setText(String.valueOf(cartList.get(i).price));
        restaurantHolder.cartItem.setText(cartList.get(i).cartItem);
    }

    @Override
    public int getItemCount() {
        return cartList.size();
    }

    public interface MyClickListener {
        public void onItemClick(int position, View v);
    }
}
公共类CartListAdapter扩展了RecyclerView.Adapter
{
清单清单;
私有静态字符串LOG_TAG=“MyRecycleServiceAdapter”;
私有静态MyClickListener MyClickListener;
静态语境;
公共静态类RestaurantHolder扩展了RecyclerView.ViewHolder
{
文本视图项;
文本视图价格;
文本浏览量;
图像视图增量图标;
图像视图图标;
图像视图删除图标;
int-selectedPosition;
整数;
双倍价格;
布尔值=false;
RestaurantHolder(查看项目视图)
{
超级(项目视图);
cartItem=(TextView)itemView.findViewById(R.id.cartItem);
cartPrice=(TextView)itemView.findViewById(R.id.cartItemPrice);
cartQuantity=(TextView)itemView.findViewById(R.id.itemQuantity);
increaseIcon=(ImageView)itemView.findViewById(R.id.increase);
decreaseIcon=(ImageView)itemView.findViewById(R.id.decrease);
deleteIcon=(ImageView)itemView.findViewById(R.id.delete);
itemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
selectedPosition=getPosition();
Log.i(Log_标签,“Position=“+selectedPosition”);
}
});
increaseIcon.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
如果(!已存储)
price=Double.parseDouble(cartPrice.getText().toString());
priceStored=true;
quantity=Integer.parseInt(cartQuantity.getText().toString())+1;
cartQuantity.setText(String.valueOf(quantity));
cartPrice.setText(String.valueOf(price*quantity));
}
});
decreaseIcon.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
如果(数量>1){
quantity=Integer.parseInt(cartQuantity.getText().toString())-1;
cartQuantity.setText(String.valueOf(quantity));
setText(String.valueOf(Double.parseDouble(cartPrice.getText().toString())-price));
}否则{
Toast.makeText(上下文,“最小订单限制”,Toast.LENGTH_SHORT).show();
}
}
});
deleteIcon.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
selectedPosition=getPosition();
Log.i(Log_标签,“移除位置=“+selectedPosition”);
//移除(选定位置);
}
});
}
}
CartListAdapter(上下文)
{
this.context=上下文;
cartList=newarraylist();
}
公共无效附加项(CartItem CartItem)
{
cartList.add(cartItem);
}
公共无效删除(内部位置)
{
cartList.移除(位置);
已移除(位置)的项目;
}
@凌驾
附加ToRecyclerView(RecyclerView RecyclerView)上的公共无效
{
super.onAttachedToRecyclerView(recyclerView);
}
@凌驾
公共餐厅文件夹onCreateViewHolder(视图组视图组,int i){
View View=LayoutInflater.from(viewGroup.getContext()).flate(R.layout.cart\u项目,viewGroup,false);
RestaurantHolder RestaurantHolder=新的RestaurantHolder(视图);
回头客;
}
@凌驾
BindViewHolder上的公共无效(RestaurantHolder RestaurantHolder,int i){
restaurantHolder.cartQuantity.setText(String.valueOf(cartList.get(i.quantity));
restaurantHolder.cartPrice.setText(String.valueOf(cartList.get(i.price));
restaurantHolder.cartItem.setText(cartList.get(i.cartItem));
}
@凌驾
public int getItemCount(){
返回cartList.size();
}
公共接口MyClickListener{
公共位置(内部位置,视图v);
}
}

我从holder类中删除了static,现在一切正常