一起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
扩展的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!
下一篇: 异步命名管道