以前在使用ListView的时候,ListView删除item比较简单,现在基本都不再使用ListView,都换成了RecycleView了,这里的删除稍微麻烦一点,要执行多个方法,才能把item删除掉,根据代码讲解一下

adapter.notifyItemRemoved(position);
adapter.notifyItemRangeChanged(0, adapter.getItemCount());

当点击删除的时候会执行这两个方法,千万不能把位置写反了,下面贴部分关键代码,后面会给下载地址

adapter里面,定义接口,让删除图标显示隐藏,

if (isShow) {viewHolder.ivDelete.setVisibility(View.VISIBLE);
} else {viewHolder.ivDelete.setVisibility(View.GONE);
}
public class CarViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {@BindView(R.id.item_checkbox)ImageView ivDelete;

    @BindView(R.id.item_id)TextView tvTitle;
    OnItemClickListener onItemClickListener;

    public CarViewHolder(View view, OnItemClickListener onItemClickListener) {super(view);
        this.onItemClickListener = onItemClickListener;
        ButterKnife.bind(this, view);
        itemView.setOnClickListener(this);
    }@Override
    public void onClick(View v) {if (onItemClickListener != null) {if (isShow) {onItemClickListener.setDeleteListener(v, getLayoutPosition());
            } else {onItemClickListener.setOnItemClickListener(v, getLayoutPosition());
            }}}
}public interface OnItemClickListener {void setOnItemClickListener(View view, int position);

    void setDeleteListener(View view, int position);
}

在activity里面实现方法,

@Override
public void setDeleteListener(View view, int position) {adapter.notifyItemRemoved(position);
    list.remove(position);
    adapter.notifyItemRangeChanged(0, adapter.getItemCount());
    notifyDataSetChanged();
}

点击item,删除刷新列表。

动态添加道理也一样,如下:

list.add(1, "" + position);
adapter.notifyItemInserted(mList.size());
adapter.notifyItemRangeChanged(list.size() - 1, list.size());

话不多说,demo地址https://github.com/hedongBlog/RecycleViewDeleteItem

RecycleView 删除指定item相关推荐

  1. jquery生成一个li_JQuery实现ul中添加LI和删除指定的Li元素功能完整示例

    本文实例讲述了JQuery实现ul中添加LI和删除指定的Li元素功能.分享给大家供大家参考,具体如下: 最近为了实现这个简单的功能也是看了很多的内容,终于找出了看起来简单易实现的方法,我觉得能用最简洁 ...

  2. vue.js 删除指定元素_vue.js删除动态绑定的radio的指定项

    上图效果,动态添加绑定radio选项,然后也可以动态删除,右边编辑器删除,左边的视图也对应的删除. 视图代码 view: " " + "{{option.text}}&q ...

  3. 获取url中的参数方法,避免#的干扰,删除url指定参数(vue hash模式 有#删除指定参数问题)

    function urlParse() {let url = window.location.search;let obj = {};let reg = /[?&][^?&]+=[^? ...

  4. 数组后存入数据、删除指定内容数据

    1.删除指定下标的元素,后面元素自动补齐 定义数组名为:array 从第index个开始,删除n个,n直接替换为需要的数字 array.splic(index,n) 2.删除指定下标的元素,空出该位置 ...

  5. 百度地图API删除指定的覆盖物Marker

    部分思路代码: 1.给地图map添加覆盖物Marker,注意给marker设定一个唯一表示,我这里用的是后端传过来的id const point = new BMap.Point(item.lng, ...

  6. 微信小程序-实现删除指定列表项

    目的:删除指定预约 结构层(wxml) <scroll-view class="scroll" wx:for="{{list}}" wx:key=&quo ...

  7. 天地图在vue中的应用 删除指定的标注

    天地图在vue中的应用 删除指定的标注 天地图引入与初始化点这里查看详情 一.添加标注 添加不同的标注我是用了两个方法实现的,在添加标注的是时候给这个点起一个名,作为删除的标记 point(e) {v ...

  8. vue中tab标签页keep-alive二级路由+删除指定缓存页面

    1.实现效果 2.keep-alive 2.1是什么: keep-alive 是 Vue 的内置组件,keep-alive 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们.和 transiti ...

  9. JS遍历从数组中删除指定元素

    JS遍历从数组中删除指定元素,arr为目标数组,aim为目标对比项 当每次遍历全部内容需要删除的元素不超过一个时,以下两种方法都可用,虽然结果是正确的,但是还是不推荐使用,因为没有包含数组改变后角标值 ...

  10. ES6数组中删除指定元素

    ES6数组中删除指定元素 findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引.否则返回-1. arr.splice(arr.findIndex(item => item.i ...

最新文章

  1. dell物理服务器硬件磁盘监控
  2. 移植uboot第三步:修改时钟
  3. 裤子尺码对照表eur40_弄明白这两个问题,你就知道内衣尺码怎么区分
  4. MySQL 每秒 570000 的写入,如何实现?
  5. Android——继续深造——从安装Android Studio 2.0开始(详)
  6. ESP32+st7789/ili9341运行LVGL例程,依赖ESP-IDF编译lv_port_esp32官方Demo(1)
  7. 卡尔曼滤波matlab_汽车毫米波雷达距离测量中的一种扩展卡尔曼滤波实现
  8. 7.26 3 教育的长久回报期
  9. 北漂五年,分享一下关于我的职场故事
  10. linux socket netstat 状态 LISTENING、ESTABLISHED、SYN_SENT、CLOSE_WAIT、TIME_WAIT、FIN_WAIT2 分别是什么意思?
  11. 冰与火之歌权力的游戏第七季第一集里面的士兵插曲音乐
  12. 童话故事 --- CPU的贴身侍卫ITCM和ICache
  13. 我都世界服务器怎么无限晴天,我的世界晴天指令 怎么设置天气为晴天停止下雨...
  14. 设置JAVA环境设置_Java为什么要设置环境变量、JAVA_HOME
  15. 获取特定 Channel 的区块链信息
  16. Win10系统利用QEMU虚拟飞腾arm架构主机环境
  17. 为micropython启用文件系统(2)
  18. JSON技术的调研报告(四种常见的JSON格式对比及分析)
  19. mysql coreseek_coreseek (sphinx)+ Mysql + Thinkphp搭建中文搜索引擎详解
  20. 数据分析师都了解的统计基本概念

热门文章

  1. python蓝屏_plt.绘图()导致windows出现蓝屏
  2. 部分英文常用口语单词(30%转贴+70%原创)
  3. elasticsearch搜索报错ElasticsearchException: failed to map source
  4. JavaScript图标移动小案例
  5. MQTT Qos详解(一)
  6. OpenStack网络QoS
  7. ADO与ADO.NET 的区别
  8. openbravo erp介绍(一)
  9. chm 文件的阅读、制作和反编译
  10. 彻底解决[未识别的网络][公共网络]的问题