我在 Bottom Sheet 中有一个 Recycler View ,如果单击该项目,它将显示在 Fragment 中。
在我的 Fragment 中,我有一个删除按钮(用于删除项目)。怎么打电话list.remove(position);
?
删除按钮方法:
buttonDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (view == buttonDelete){
switchCardAdapter.deleteMethod(1);
}
}
});
1 只有虚拟位置,我如何从适配器获得真实位置?
适配器内的删除方法:
public void deleteMethod(int position) {
cards.remove(position);
}
完整的 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);
}
任何帮助,将不胜感激。
public void deleteMethod(int position) {
cards.remove(position);
adapter.notifyItemRemoved(position)
}
根据我的理解,您的代码流应该如下所示:
从一个片段中,您打开了 1 个包含 RV 物品的底部工作表。现在,当用户单击 RV 项目时,您已从“卡片片段”中打开了新片段并关闭了底部表单。在新片段中,您已经传递了包数据。在卡片片段中,您有删除按钮,可以从卡片列表中删除项目。
所以从你的卡片片段使用界面,你必须从你打开底部表的地方通知你的第一个片段。在此片段中,您必须从卡片列表中删除该特定项目。(您必须将位置从卡片片段传递到第一个片段才能从列表中删除)。
现在您的卡片列表已更新。您可以使用新更新的列表再次打开底部工作表。(以前在 onbindViewHolder 中,您已解雇)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句