当前位置: 首页 > news >正文

Android——RecyclerView

RecyclerView的使用

  • 依赖
	implementation("androidx.recyclerview:recyclerview:1.4.0")
  • activity_recyclerview.xml
    <androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/rv"android:layout_width="match_parent"android:layout_height="match_parent" />
  • RecyclerviewActivity.java
    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_recyclerview);RecyclerView recyclerView = findViewById(R.id.rv);LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);recyclerView.setLayoutManager(linearLayoutManager);RecyclerviewAdapter adapter = new RecyclerviewAdapter(Planet.getDefaultList(), this);recyclerView.setAdapter(adapter);}
  • RecyclerviewAdapter.java
public class RecyclerviewAdapter extends RecyclerView.Adapter<RecyclerviewAdapter.ViewHolder> {private List<Planet> data;private Context context;public RecyclerviewAdapter(List<Planet> data, Context context) {this.data = data;this.context = context;}@NonNull@Overridepublic ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View view = View.inflate(context, R.layout.recyclerview_item, null);return new ViewHolder(view);}@Overridepublic void onBindViewHolder(@NonNull ViewHolder holder, int position) {holder.tv.setText(data.get(position).name);}@Overridepublic int getItemCount() {return data == null ? 0 : data.size();}public class ViewHolder extends RecyclerView.ViewHolder {private TextView tv;public ViewHolder(@NonNull View itemView) {super(itemView);tv = itemView.findViewById(R.id.tv);}}
}
  • 绑定点击事件

使用接口实现回调

        public ViewHolder(@NonNull View itemView) {super(itemView);tv = itemView.findViewById(R.id.tv);itemView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (mOnItemClickListener != null) {mOnItemClickListener.onRecyclerItemClick(getLayoutPosition());}}});}

在adapter中实现一个接口

    private OnRecyclerItemClickListener mOnItemClickListener;public void setRecyclerItemClickListener(OnRecyclerItemClickListener listener) {mOnItemClickListener = listener;}public interface OnRecyclerItemClickListener {void onRecyclerItemClick(int position);}

在Activity中传入回调方法

    adapter.setRecyclerItemClickListener(new RecyclerviewAdapter.OnRecyclerItemClickListener() {@Overridepublic void onRecyclerItemClick(int position) {Log.d("TAG", "" + position);}});

案例代码

http://www.xdnf.cn/news/168517.html

相关文章:

  • Qt 中 QSQLITE 和 QODBC 数据库连接的区别
  • CentOS7.9安装OpenSSL 1.1.1t和OpenSSH9.9p1
  • 常用描述性统计 - AxureMost
  • 【网络原理】从零开始深入理解TCP的各项特性和机制.(三)
  • Linux命令#文件操作
  • 基于Pytest接口自动化的requests模块项目实战以及接口关联方法详解
  • ubuntu 安装ollama后,如何让外网访问?
  • 《代码整洁之道》第4章 注释 - 笔记
  • Android开发中svg转xml工具使用
  • 微服务基础-Ribbon
  • 2.脚本文件初识
  • 基于单片机的智能药盒系统
  • 【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
  • 贪心算法-860.柠檬水找零-力扣(LeetCode)
  • 关于OCP认证:有Oracle和MySQL两种
  • 【vue3】购物车实战:从状态管理到用户体验的全流程实现
  • 996引擎-人物模型(UIModel):创建内观时装备偏移问题
  • 「Mac畅玩AIGC与多模态02」部署篇01 - 在 Mac 上部署 Ollama + Open WebUI
  • 云原生--核心组件-容器篇-4-认识Dockerfile文件(镜像创建的基础文件和指令介绍)
  • 深度解析:TextRenderManager——Cocos Creator艺术字体渲染核心类
  • Golang 遇见 Kubernetes:云原生开发的完美结合
  • Kotlin中的also、apply、invoke用法详解
  • 泛型的诗意——深入C++模板的艺术与科学(模版进阶)
  • 【MySQL】数据类型和表的操作
  • 数据结构【堆和链式结构】
  • 音视频之H.265/HEVC熵编码
  • 第三章,GRE和MGRE
  • 算法效率的钥匙:从大O看复杂度计算 —— C语言数据结构第一讲
  • 《数据结构初阶》【顺序表 + 单链表 + 双向链表】
  • JAVA:单例模式