当前位置: 首页 > 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:安全与性能兼得的现代系统编程语言
  • 购车补贴、“谷子”消费、特色产品,这些活动亮相五五购物节
  • 中央党校(国家行政学院)举行2025年春季学期第一批进修班毕业典礼
  • 上海开花区域结果,这项田径大赛为文旅商体展联动提供新样本
  • 西班牙遭遇史上最严重停电,已进入国家紧急状态
  • 外交部回应涉长江和记出售巴拿马运河港口交易:望有关各方审慎行事,充分沟通
  • 北美票房|《罪人》遭媒体唱衰,好莱坞业内人士集体反击