androidx.recyclerview:recyclerview的使用

androidx.recyclerview:recyclerview的使用添加扩展或手动修改 app build gradle 在 dependencies 里添加 implementati androidx recyclerview recyclerview 1 0 0 新建布局 layoutitem 布局 fruit item xml xmlversion 1 0 encoding utf 8

添加扩展

androidx.recyclerview:recyclerview的使用
或手动修改app/build.gradle
dependencies里添加




implementation 'androidx.recyclerview:recyclerview:1.0.0' 

新建布局layout

item布局fruit_item.xml

 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/fruit_image" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/fruit_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="10dp"/>  
     LinearLayout> 

修改活动布局activity_main.xml

 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent"/>  
     LinearLayout> 

item数据类

package com.example.recyclerviewtest; public class Fruit { 
    private String name; private int imageId; public Fruit(String name, int imageId) { 
    this.name = name; this.imageId = imageId; } public String getName() { 
    return name; } public int getImageId() { 
    return imageId; } } 

适配器类FruitAdapter

package com.example.recyclerviewtest; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import java.util.List; public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> { 
    private List<Fruit> mFruitList; static class ViewHolder extends RecyclerView.ViewHolder { 
    View fruitView; ImageView fruitImage; TextView fruitName; public ViewHolder(View view) { 
    super(view); fruitView = view; fruitImage = view.findViewById(R.id.fruit_image); fruitName = view.findViewById(R.id.fruit_name); } } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { 
    View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.fruit_item, parent, false); final ViewHolder holder = new ViewHolder(view); holder.fruitView.setOnClickListener(new View.OnClickListener() { 
    @Override public void onClick(View view) { 
    int position = holder.getAdapterPosition(); Fruit fruit = mFruitList.get(position); Toast.makeText(view.getContext(), "你点击了View"+ fruit.getName(), Toast.LENGTH_SHORT).show(); } }); holder.fruitImage.setOnClickListener(new View.OnClickListener() { 
    @Override public void onClick(View view) { 
    int position = holder.getAdapterPosition(); Fruit fruit = mFruitList.get(position); Toast.makeText(view.getContext(), "你点击了图片"+ fruit.getName(), Toast.LENGTH_SHORT).show(); } }); return holder; } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { 
    Fruit fruit = mFruitList.get(position); holder.fruitImage.setImageResource(fruit.getImageId()); holder.fruitName.setText(fruit.getName()); } @Override public int getItemCount() { 
    return mFruitList.size(); } public FruitAdapter(List<Fruit> fruitList) { 
    mFruitList = fruitList; } } 

主活动类

package com.example.recyclerviewtest; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.os.Bundle; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { 
    private List<Fruit> fruitList = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initFruits(); RecyclerView recyclerView = findViewById(R.id.recycler_view); LinearLayoutManager layoutManager= new LinearLayoutManager(this); recyclerView.setLayoutManager(layoutManager); FruitAdapter adapter = new FruitAdapter(fruitList); recyclerView.setAdapter(adapter); } private void initFruits() { 
    for(int i = 0; i < 10; i++) { 
    Fruit apple = new Fruit("Apple", R.drawable.apple_pic); fruitList.add(apple); Fruit banana = new Fruit("banana", R.drawable.banana_pic); fruitList.add(banana); } } } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211920.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午9:16
下一篇 2026年3月18日 下午9:17


相关推荐

  • 解决网页上不能直接复制文字的问题「建议收藏」

    解决网页上不能直接复制文字的问题「建议收藏」禁用JavaScript获取网页文字一、简介二、具体操作步骤(1)打开开发人员工具(2)禁用JavaScript(3)点击确定,刷新页面(4)(5)三、总结与说明一、简介二、具体操作步骤(1)打开开发人员工具点击F12快捷键直接打开开发人员工具,多数电脑都能使用该快捷键直接打开,按F12后在浏览器右上方会出现如下图界面,点击打开开发工具即可成功打开界面如下:注:此界面功能巨大,这里我就不详细介绍,此时你只需要注意上图中我画框的齿轮位置如果使用F12快捷方式不能打开开发人员工具:在网页中先点

    2022年10月9日
    5
  • matlab的length函数和size函数

    matlab的length函数和size函数在matlab中length函数和size函数的用法

    2022年5月2日
    71
  • 创新与项目管理_创新与创业管理

    创新与项目管理_创新与创业管理值此新商业时代,作为组织内保证所有项目成功交付,支撑组织战略目标实现的PMO,在现代企业管理和商业运作中将扮演着十分重要的角色。现阶段,虽然PMO随着项目管理的普及和深入应用,已经成为组织项目管理发展的新趋势,但是它在迎来新的发展机遇的同时也面临着不小的挑战,其PMO管理能力与水平的高低将决定它自身在支撑组织战略中的价值程度。为进一步加强PMO人士之间的广泛交流,分享成功的PMO运作实践,促进…

    2022年8月31日
    7
  • 3D视觉传感技术:时间飞行法 (ToF) 技术分析

    3D视觉传感技术:时间飞行法 (ToF) 技术分析现行的深度传感镜头作为智能手机的一大创新 已在目前主流智能手机上广泛应用 因苹果在最新版 iPadPro 上搭载了 D ToF 直接飞行时间法 深度传感镜头引起了极大的关注 推动了 3D 视觉在消

    2026年3月18日
    2
  • 把Kimi当竞价广告词卖了?月之暗面喊话百度:前四个都是假冒网站

    把Kimi当竞价广告词卖了?月之暗面喊话百度:前四个都是假冒网站

    2026年3月12日
    2
  • CSS3 选择器

    CSS3 选择器CSS3选择器分为:结构型伪类选择器、UI元素状态伪类选择器,否定选择器,和伪元素一、结构型伪类选择器:first-child选择某个元素的第一个子元素; :last-child选择某个元素的最后一个子元素; :nth-child()选择某个元素的一个或多个特定的子元素; :nth-last-child()选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算; :…

    2022年7月11日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号