为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 Activity 的 Recycleview 中删除项目

如何从 Activity 的 Recycleview 中删除项目

一只名叫tom的猫 2023-06-28 19:46:51
我有recycleview,我在其中实现了搜索功能。并且每个项目都添加了 onClick,它通过以下代码从列表中删除项目。   holder.del_btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                            int newPosition = holder.getAdapterPosition();                contactListFiltered.remove(newPosition);                notifyItemRemoved(newPosition);                notifyItemRangeChanged(newPosition, contactListFiltered.size());});它适用于普通列表,但当搜索任何项目时,在过滤结果上,onclick 侦听器可能会由于视图重叠而随机删除。所以我用下面的代码将 onclick 侦听器传递给活动            mSolved.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View view) {                    // send selected contact in callback                    listener.onSolved(contactListFiltered.get(getAdapterPosition()));                }            });                         public interface FRoomAdapterListener {        void onSolved(Districtpost contact);    }在我正在使用的活动中    public void onDelete(Districtpost contact) {            int newPosition = holder.getAdapterPosition();        contactListFiltered.remove(newPosition);        notifyItemRemoved(newPosition);        notifyItemRangeChanged(newPosition, contactListFiltered.size());                });这肯定会引发错误。我该如何解决这个问题。提前致谢。
查看完整描述

2 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

尝试这个


public void onDelete(Districtpost contact) {

if(contactListFiltered != null && contactListFiltered.size > 0){

contactListFiltered.remove(contact);

notifydatasetchanged();

}});


查看完整回答
反对 回复 2023-06-28
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

尝试这个:


yourList.remove(position); //Remove item from list

notifyItemRemoved(position); //notify changes made to the adapter.


查看完整回答
反对 回复 2023-06-28
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信