如何从另一个类中删除回收器视图的项目?

问题描述 投票:0回答:2

我在底页上有一个recyclerview,如果单击了该项目,它将显示在我的片段中。

在我的片段中有按钮删除(删除项)。如何呼叫list.remove(position);

方法删除按钮:

buttonDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (view == buttonDelete){
                    switchCardAdapter.deleteMethod(1);
                }
            }
        });

在适配器中删除方法:

public void deleteMethod(int position) {
        cards.remove(position);
    }

Full BindViewHolder:

@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
        final Card card = cards.get(position);

        holder.textNumber.setText(String.valueOf(card.getNumberCard()));
        holder.textName.setText(card.getName());

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Bundle b = new Bundle();


                b.putString("name", card.getName());
                b.putString("description", card.getDescripton());
                b.putString("type", card.getType());
                b.putLong("numberCard", card.getNumberCard());
                b.putInt("cvv",card.getCvv());
                b.putInt("exp", card.getExp());
                b.putInt("pin", card.getPin());

                cardFragment.setDataCard(b);

                bottomSheetFragment.dismiss();
            }
        });

    }

    public void deleteMethod(int position) {
        cards.remove(position);
    }

任何产品都会使您很满意

android position adapter
2个回答
0
投票
public void deleteMethod(int position) {
        cards.remove(position);
        adapter.notifyItemRemoved(position)
    }

0
投票

当您的adapter的数据源发生变化时,应收到通知

public void deleteMethod(int position) {
    cards.remove(position);
    notifyDataSetChanged();
}

或更有效

public void deleteMethod(int position) {
        cards.remove(position);
        notifyItemRemoved(position);
        //enables smooth animations and also updates data
        notifyItemRangeChanged(position, getItemCount());
}
© www.soinside.com 2019 - 2024. All rights reserved.