猿问

如何从 Activity 的 Recycleview 中删除项目

我有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());

        

        });


这肯定会引发错误。我该如何解决这个问题。提前致谢。


一只名叫tom的猫
浏览 146回答 2
2回答

哈士奇WWW

尝试这个public void onDelete(Districtpost contact) {if(contactListFiltered != null && contactListFiltered.size > 0){contactListFiltered.remove(contact);notifydatasetchanged();}});

慕的地8271018

尝试这个:yourList.remove(position); //Remove item from listnotifyItemRemoved(position); //notify changes made to the adapter.
随时随地看视频慕课网APP

相关分类

Java
我要回答