当前位置: 首页 > 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.dtcms.com/a/159210.html

相关文章:

  • 时空特征如何融合?LSTM+Resnet有奇效,SOTA方案预测准确率超91%
  • C语言-- 深入理解指针(4)
  • 项目班——0422——日志
  • 微调灾情分析报告生成模型
  • 安卓触摸事件分发机制分析
  • Diamond软件的使用--(6)访问FPGA的专用SPI接口
  • 基于STM32、HAL库的AD7616BSTZ模数转换器ADC驱动程序设计
  • C++ - 类和对象 # 类的定义 #访问限定符 #类域 #实例化 #this 指针 #C++ 与 C语言的比较
  • 《代码整洁之道》第4章 注释 - 笔记
  • CentOS7.9安装OpenSSL 1.1.1t和OpenSSH9.9p1
  • 小结:BFD
  • Redis ssd是什么?Redis 内存空间优化的点都有哪些?embstr 和 row、intset、ziplist分别是什么?
  • LeetCode题解1297. 子串的最大出现次数
  • 大模型评测调研报告
  • 计算机网络 | 应用层(6) -- 套接字编程
  • 大模型基础(三):Llama3复现
  • Mac桌面幻灯片,Google文档,google硬盘和google等图标如何移除
  • Docker(二):docker常用命令
  • 2025系统架构师---解释器架构风格‌
  • Rust:安全与性能兼得的现代系统编程语言
  • 深入探索Python Pandas:解锁数据分析的无限可能
  • 【Java】分布式事务解决方案
  • 「Mac畅玩AIGC与多模态02」部署篇01 - 在 Mac 上部署 Ollama + Open WebUI
  • (MySQL)表的操作
  • Ant(Ubuntu 18.04.6 LTS)安装笔记
  • 「Mac畅玩AIGC与多模态03」部署篇02 - 在 Mac 上部署 Dify
  • Pydantic:校验器(@validator)、模型嵌套、模型继承
  • 使用cesium设置第一视角
  • openharmony—4.1 softbus_tool 工具编译使用测试笔记(持续更新)
  • ubuntu 安装ollama后,如何让外网访问?