我有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();
}});
慕的地8271018
TA贡献1796条经验 获得超4个赞
尝试这个:
yourList.remove(position); //Remove item from list
notifyItemRemoved(position); //notify changes made to the adapter.
添加回答
举报
0/150
提交
取消