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


相关推荐: 如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  浅谈javascript alert和confirm的美化  原生JS实现图片轮播切换效果  浅谈redis在项目中的应用  佛山企业网站制作公司有哪些,沟通100网上服务官网?  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  IOS倒计时设置UIButton标题title的抖动问题  油猴 教程,油猴搜脚本为什么会网页无法显示?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  浅析上传头像示例及其注意事项  Thinkphp 中 distinct 的用法解析  深入理解Android中的xmlns:tools属性  如何快速查询网址的建站时间与历史轨迹?  Laravel如何处理CORS跨域请求?(配置示例)  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  如何在万网自助建站中设置域名及备案?  Laravel如何实现模型的全局作用域?(Global Scope示例)  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  Laravel怎么为数据库表字段添加索引以优化查询  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  如何在阿里云香港服务器快速搭建网站?  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何用花生壳三步快速搭建专属网站?  Laravel Session怎么存储_Laravel Session驱动配置详解  如何在腾讯云服务器快速搭建个人网站?  Android Socket接口实现即时通讯实例代码  Laravel怎么清理缓存_Laravel optimize clear命令详解  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Python文件异常处理策略_健壮性说明【指导】  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  EditPlus中的正则表达式实战(6)  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  活动邀请函制作网站有哪些,活动邀请函文案?  在线制作视频网站免费,都有哪些好的动漫网站?  Laravel如何生成API文档?(Swagger/OpenAPI教程)  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  如何用AWS免费套餐快速搭建高效网站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  高防服务器如何保障网站安全无虞?  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  WEB开发之注册页面验证码倒计时代码的实现  Mybatis 中的insertOrUpdate操作