Android recycleView的应用和点击事件实例详解

发布时间 - 2026-01-10 22:05:29    点击率:

Android recycleView的应用和点击事件

效果图:


长按是删除:

下面代码:

MainActivity 类

public class MainActivity extends AppCompatActivity {

  RecyclerView rv;

  List<String> mList = new ArrayList<>();

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    setContentView(R.layout.activity_main);
    rv = (RecyclerView) findViewById(R.id.rv);
    for (int i = 0; i < 1000; i++) {
      mList.add("条目" + i);
    }
    final MyAdapter adapter = new MyAdapter(this, mList);
    adapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
      @Override
      public void onClick(int position) {
        Toast.makeText(getBaseContext(), "点击的是" + position + "的itemClick", Toast.LENGTH_SHORT).show();
      }
    });
    adapter.setOnItemLongClickListener(new MyAdapter.OnItemLongClickListener() {
      @Override
      public void onLongClick(int position) {
        //长按删除数据
        mList.remove(position);
        adapter.notifyDataSetChanged();
      }
    });
    rv.setAdapter(adapter);

    //布局管理器
    rv.setLayoutManager(new StaggeredGridLayoutManager(5, StaggeredGridLayoutManager.VERTICAL));
  }


  public static class VH extends RecyclerView.ViewHolder {
    TextView tv;

    public VH(View itemView) {
      super(itemView);
      tv = (TextView) itemView.findViewById(android.R.id.text1);
      tv.setBackgroundResource(R.drawable.bg);
    }
  }


}

MyAdapter.java类

public class MyAdapter extends RecyclerView.Adapter<MainActivity.VH> {

  Context mContext;
  List<String> mList;

  public MyAdapter(Context context, List<String> list) {
    this.mContext = context;
    this.mList = list;
  }

  @Override
  public MainActivity.VH onCreateViewHolder(ViewGroup parent, int viewType) {
    return new MainActivity.VH(View.inflate(mContext, android.R.layout.simple_list_item_1, null));
  }

  @Override
  public void onBindViewHolder(MainActivity.VH holder, final int position) {
    holder.tv.setText(mList.get(position));

    //自己做item点击
    holder.itemView.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        if (onItemClickListener != null)
          onItemClickListener.onClick(position);
      }
    });
    holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
      @Override
      public boolean onLongClick(View v) {
        if (onItemLongClickListener != null)
          onItemLongClickListener.onLongClick(position);
        //返回false会在长安结束后继续点击
        return true;
      }
    });
  }

  @Override
  public int getItemCount() {
    return mList.size();
  }


  /**
   * 点击
   */
  public interface OnItemClickListener {
    void onClick(int position);
  }

  OnItemClickListener onItemClickListener;


  public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
    this.onItemClickListener = onItemClickListener;
  }

  public interface OnItemLongClickListener {
    void onLongClick(int position);
  }

  OnItemLongClickListener onItemLongClickListener;

  public void setOnItemLongClickListener(OnItemLongClickListener onItemLongClickListener) {
    this.onItemLongClickListener = onItemLongClickListener;
  }
}

activity_main.xml类

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/activity_main"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context="com.example.administrator.lesson10_recyclerview2.MainActivity">


  <android.support.v7.widget.RecyclerView
    android:id="@+id/rv"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</RelativeLayout> 

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android  # recycleView  # recycleView详解及实例  # recycleView应用点击事件  # 在RecyclerView中实现button的跳转功能  # Android 中RecycleView实现item的点击事件  # Recycleview实现无限自动轮播  # Android实现Recycleview悬浮粘性头部外加右侧字母导航  # 去掉RecycleView或者ListView上下滑动阴影的方法  # Android移动开发recycleView的页面点击跳转设计实现  # 的是  # 长安  # 会在  # 希望能  # 管理器  # 谢谢大家  # 结束后  # OnItemClickListener  # setOnItemClickListener  # adapter  # position  # onClick  # findViewById  # id  # int  # MyAdapter  # final  # add  # Toast  # setAdapter 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Python函数文档自动校验_规范解析【教程】  中山网站推广排名,中山信息港登录入口?  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  如何用好域名打造高点击率的自主建站?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  新三国志曹操传主线渭水交兵攻略  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  如何用AI帮你把自己的生活经历写成一个有趣的故事?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  微信小程序 require机制详解及实例代码  高防服务器:AI智能防御DDoS攻击与数据安全保障  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  原生JS实现图片轮播切换效果  如何在IIS中新建站点并解决端口绑定冲突?  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Laravel API资源类怎么用_Laravel API Resource数据转换  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  敲碗10年!Mac系列传将迎来「触控与联网」双革新  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Python文件流缓冲机制_IO性能解析【教程】  高性能网站服务器部署指南:稳定运行与安全配置优化方案  php json中文编码为null的解决办法  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何快速生成专业多端适配建站电话?  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  在线制作视频的网站有哪些,电脑如何制作视频短片?  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  如何在橙子建站上传落地页?操作指南详解  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  微信小程序 五星评分(包括半颗星评分)实例代码  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  如何将凡科建站内容保存为本地文件?  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  如何彻底卸载建站之星软件?  android nfc常用标签读取总结  如何打造高效商业网站?建站目的决定转化率  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  Laravel如何使用withoutEvents方法临时禁用模型事件  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  简单实现jsp分页  jQuery 常见小例汇总  Android GridView 滑动条设置一直显示状态(推荐)  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程