当前位置: 首页 > 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);}});

案例代码

相关文章:

  • 时空特征如何融合?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:安全与性能兼得的现代系统编程语言
  • 事关稳就业稳经济,10张海报看懂这场发布会的政策信号
  • 下任美联储主席热门人选沃什:美联储犯下“系统性错误”,未能控制一代人以来最严重的通胀
  • 伊朗国防部发言人:发生爆炸的港口无进出口军用物资
  • 释新闻|SEVIS是什么?在美留学生遭身份中止意味什么?
  • 体育公益之约跨越山海,雪域高原果洛孕育足球梦
  • 临沂文旅集团被诉侵权,原告每年三百余起类案