一起Talk Android吧(第七十八回:Android中UI控件之RecyclerView扩展)

各位看官们,大家好,上一回中咱们说的是Android中UI控件之RecyclerView变化的例子,这一回咱们说的例子是UI控件之RecyclerView扩展。闲话休提,言归正转。让我们一起Talk Android吧!

看官们,本章回中我们介绍的是RecyclerView的扩展,回想一下ListView的扩展,它主要有三个方面:布局,数据类型和适配器。而RecyclerView的扩展也和它类似,因为RecyclerView提供了适配器,而且我们只能按照该适配器的规范来定义适配器,所以我们对RecyclerView的扩展只有两个方面:布局和数据类型

  • 扩展数据类型:

我们定义了一个类并且使用它当作数据的类型,代码如下:

public class CustomData {
    private int mImageViewId;
    private String mStringTextView;

    public CustomData(int imageViewId, String stringTextView) {
        mImageViewId = imageViewId;
        mStringTextView = stringTextView;
    }

    public int getImageViewId() {
        return mImageViewId;
    }

    public void setImageViewId(int imageViewId) {
        mImageViewId = imageViewId;
    }

    public String getStringTextView() {
        return mStringTextView;
    }

    public void setStringTextView(String stringTextView) {
        mStringTextView = stringTextView;
    }
}

该类有两个成员变量,一个用来存放图标的资源ID,另外一个用来存放字符串的内容。它们的初始化操作由构造函数来完成。其它成员函数都是setter和getter.数据类型扩展后,适配器中的代码也要做相应的修改,变化的主要有适配器和ViewHolder的构造器,适配器中重写的三个方法也要做点小修改。主Activiy中关于数据的容器也随着做了修改,并且更新了容器中数据初始化的方式。完整的代码上传到了附件中,点击这里可以去下载。因此这些变化的代码就不再列出来了。

  • 扩展布局:

原来的布局中只有一个文本组件,扩展后变成了一个图片组件(ImageView)和一个文本组件(TextView),具体的代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content">
   <ImageView
       android:id="@+id/id_recy_view_item_img"
       android:layout_width="50dp"
       android:layout_height="wrap_content"/>
   <TextView
        android:id="@+id/id_recy_view_item_text"
        android:layout_width="match_parent"
        android:layout_height="50dp"/>
</LinearLayout>

最后,我们对RecyclerView的扩展做一些总结:
扩展的数据类型和布局需要匹配,需要显示哪些数据,就要把显示这些数据的组件放到布局中。数据类型包含哪些成员是按照项目需求来决定的。此外,存放数据的容器,可以是数组,也可以是列表,到于使用哪种容器,自行决定。

下面是程序的运行结果,请大家参考:

这里写图片描述

该程序中使用的Icon来源于icon8网站,版权规该网站所有,我只是借用一下^_^.把这些Icon下载后放到工程的drawable目录下,然后就可以通过资源ID来引用它们。

各位看官,关于Android中UI控件之RecyclerView扩展的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!


猜你喜欢

转载自blog.csdn.net/talk_8/article/details/80671390