2024-08-16升级记录:使用Android RecyclerView控件显示列表型信息

在页面上使用RecyclerView实现一个列表型信息展示:

步骤如下:

一、在页面布局中添加RecyclerView控件

XML 复制代码
            <TextView
                android:id="@+id/txt_gnss_info"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="卫星信息"
                android:textColor="#0a0a0a" />
            <android.support.v7.widget.RecyclerView
                android:id="@+id/rv_gnss_country"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="20dp"
                />

二、添加单行显示的item布局文件

layout_gnss_counrty_item.xml

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/iv_item_flag"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="16dp"
        android:src="@drawable/flag_beidou_3"
        android:layout_centerVertical="true"
        />

    <TextView
        android:id="@+id/tv_item_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="GNSS国家名称"
        android:layout_centerVertical="true"
        android:textColor="@color/layer_name"
        android:layout_marginLeft="8dp"
        android:layout_gravity="center_vertical"/>

</LinearLayout>

三、逻辑实现代码

实体类:

java 复制代码
public class GnssCountryInfo {
    public int FlagId;
    public String TextContext;

    public GnssCountryInfo(int _id,String _str){
        FlagId = _id;
        TextContext = _str;
    }
}

Adapter类和ViewHolder类:

java 复制代码
public class GnssCountryAdapter extends RecyclerView.Adapter<GnssCountryAdapter.GnssCountryViewHoder> {

    private Context context;
    private List<GnssCountryInfo> dataList;

    public GnssCountryAdapter(Context _context, List<GnssCountryInfo> _data){
        this.dataList = _data;
        this.context = _context;
    }

    @NonNull
    @Override
    public GnssCountryViewHoder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = View.inflate(context, R.layout.layout_gnss_counrty_item, null);
        GnssCountryViewHoder gnssCountryViewHoder = new GnssCountryViewHoder(view);
        return gnssCountryViewHoder;
    }

    @Override
    public void onBindViewHolder(@NonNull GnssCountryViewHoder holder, int position) {
        GnssCountryInfo itemData = dataList.get(position);
        holder.mCountryFlag.setImageResource(itemData.FlagId);
        holder.mTitleContent.setText(itemData.TextContext);
    }

    @Override
    public int getItemCount() {
        return dataList.size();
    }


    class GnssCountryViewHoder extends RecyclerView.ViewHolder {
        ImageView mCountryFlag;
        TextView mTitleContent;

        public GnssCountryViewHoder(@NonNull View itemView) {
            super(itemView);
            mCountryFlag = itemView.findViewById(R.id.iv_item_flag);
            mTitleContent = itemView.findViewById(R.id.tv_item_name);
        }
    }

}

调用:

java 复制代码
        GnssCountryAdapter adapter = new GnssCountryAdapter(this,dataList);
        mRecyclerView.setAdapter(adapter);
        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
        mRecyclerView.setLayoutManager(layoutManager);

注意:

一定要设置:

LinearLayoutManager layoutManager = new LinearLayoutManager(this);

mRecyclerView.setLayoutManager(layoutManager);

否则会出错。

参考链接:

Android RecyclerView最全使用详解-CSDN博客

RecyclerView相关学习资料:

Android开发,使用RecyclerView实现商品列表_安卓recyclerview设备列表-CSDN博客

Android RecyclerView控件_recycleview版本-CSDN博客

RecyclerView之下拉刷新、下拉加载的实现_androidx.recyclerview.widget.recyclerview下拉刷新 底部加载-CSDN博客

相关推荐
拭心4 小时前
Google 提供的 Android 端上大模型组件:MediaPipe LLM 介绍
android
带电的小王7 小时前
WhisperKit: Android 端测试 Whisper -- Android手机(Qualcomm GPU)部署音频大模型
android·智能手机·whisper·qualcomm
梦想平凡7 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
元争栈道7 小时前
webview和H5来实现的android短视频(短剧)音视频播放依赖控件
android·音视频
阿甘知识库8 小时前
宝塔面板跨服务器数据同步教程:双机备份零停机
android·运维·服务器·备份·同步·宝塔面板·建站
元争栈道9 小时前
webview+H5来实现的android短视频(短剧)音视频播放依赖控件资源
android·音视频
MuYe9 小时前
Android Hook - 动态加载so库
android
居居飒10 小时前
Android学习(四)-Kotlin编程语言-for循环
android·学习·kotlin
Henry_He12 小时前
桌面列表小部件不能点击的问题分析
android
工程师老罗13 小时前
Android笔试面试题AI答之Android基础(1)
android