当前位置:   article > 正文

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

recyclerview显示所有项

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

 步骤如下:

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

  1. <TextView
  2. android:id="@+id/txt_gnss_info"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. android:text="卫星信息"
  6. android:textColor="#0a0a0a" />
  7. <android.support.v7.widget.RecyclerView
  8. android:id="@+id/rv_gnss_country"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. android:layout_marginBottom="20dp"
  12. />

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

   layout_gnss_counrty_item.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:orientation="horizontal"
  5. android:layout_height="wrap_content">
  6. <ImageView
  7. android:id="@+id/iv_item_flag"
  8. android:layout_width="24dp"
  9. android:layout_height="24dp"
  10. android:layout_gravity="center_vertical"
  11. android:layout_marginLeft="16dp"
  12. android:src="@drawable/flag_beidou_3"
  13. android:layout_centerVertical="true"
  14. />
  15. <TextView
  16. android:id="@+id/tv_item_name"
  17. android:layout_width="wrap_content"
  18. android:layout_height="wrap_content"
  19. android:text="GNSS国家名称"
  20. android:layout_centerVertical="true"
  21. android:textColor="@color/layer_name"
  22. android:layout_marginLeft="8dp"
  23. android:layout_gravity="center_vertical"/>
  24. </LinearLayout>

三、逻辑实现代码

实体类

  1. public class GnssCountryInfo {
  2. public int FlagId;
  3. public String TextContext;
  4. public GnssCountryInfo(int _id,String _str){
  5. FlagId = _id;
  6. TextContext = _str;
  7. }
  8. }

Adapter类和ViewHolder类:

  1. public class GnssCountryAdapter extends RecyclerView.Adapter<GnssCountryAdapter.GnssCountryViewHoder> {
  2. private Context context;
  3. private List<GnssCountryInfo> dataList;
  4. public GnssCountryAdapter(Context _context, List<GnssCountryInfo> _data){
  5. this.dataList = _data;
  6. this.context = _context;
  7. }
  8. @NonNull
  9. @Override
  10. public GnssCountryViewHoder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  11. View view = View.inflate(context, R.layout.layout_gnss_counrty_item, null);
  12. GnssCountryViewHoder gnssCountryViewHoder = new GnssCountryViewHoder(view);
  13. return gnssCountryViewHoder;
  14. }
  15. @Override
  16. public void onBindViewHolder(@NonNull GnssCountryViewHoder holder, int position) {
  17. GnssCountryInfo itemData = dataList.get(position);
  18. holder.mCountryFlag.setImageResource(itemData.FlagId);
  19. holder.mTitleContent.setText(itemData.TextContext);
  20. }
  21. @Override
  22. public int getItemCount() {
  23. return dataList.size();
  24. }
  25. class GnssCountryViewHoder extends RecyclerView.ViewHolder {
  26. ImageView mCountryFlag;
  27. TextView mTitleContent;
  28. public GnssCountryViewHoder(@NonNull View itemView) {
  29. super(itemView);
  30. mCountryFlag = itemView.findViewById(R.id.iv_item_flag);
  31. mTitleContent = itemView.findViewById(R.id.tv_item_name);
  32. }
  33. }
  34. }

 调用:

  1. GnssCountryAdapter adapter = new GnssCountryAdapter(this,dataList);
  2. mRecyclerView.setAdapter(adapter);
  3. LinearLayoutManager layoutManager = new LinearLayoutManager(this);
  4. 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博客

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号