Android开发教程 - 使用Data Binding(六)RecyclerView Adapter中的使用
本系列目录
- 使用Data Binding(一)介绍
- 使用Data Binding(二)集成与配置
- 使用Data Binding(三)在Activity中的使用
- 使用Data Binding(四)在Fragment中的使用
- 使用Data Binding(五)数据绑定
- 使用Data Binding(六)RecyclerView Adapter中的使用
- 使用Data Binding(七)使用BindingAdapter简化图片加载
- 使用Data Binding(八)使用自定义Interface
- 使用Data Binding Android Studio不能正常生成相关类/方法的解决办法
前面我们讲到了Data Binding在Activity中的使用和在Fragment中的使用,除此之外,Data Binding也可以使用在RecyclerView/AdapterView的Adapter中,本文以RecyclerView为例。
获取Binding对象
按照通常的做法,我们在Adapter中会定义一个ViewHolder,在此ViewHolder中取得一些布局View的引用。
使用Data Binding后同样可以简化Adapter中的操作。
比如我们新建布局文件item_binding.xml:
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <data> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" > <TextView android:id="@+id/tv_example" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" /> </LinearLayout> </layout>
新建后我们会发现IDE会为我们生成一个绑定类ItemBinding.java,此时我们就可以把它定义在ViewHolder中:
如果没有生成,依然参考 这篇文章
class ItemsHolder extends RecyclerView.ViewHolder { ItemBinding binding; ItemsHolder(View itemView) { super(itemView); binding = DataBindingUtil.bind(itemView); } }
覆写父类方法onCreateViewHolder(),创建ViewHolder
定义好上面的ViewHolder后,我们就覆写RecyclerView.Adapter的onCreateViewHolder()方法来创建一个ViewHolder:
@NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); return new ItemsHolder(v); }
在onBindViewHolder()方法中使用ItemBinding
上面我们创建好ViewHolder后,我们就可以在这个方法中使用它了,用法就跟之前我们在Activity中和Fragment中一样了。
@Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { ItemsHolder vh = (ItemsHolder)holder; Item item = getItem(position); vh.binding.tvExample.setText(item.getName()); }
总结
下一篇我们将会介绍BindingAdapter的使用,它应用的场景也很多,我们将以ImageView来举例,大大简化我们开发中加载网络/本地图片的重复代码(仅需一行代码)。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android开发教程 - 使用Data Binding(五)数据绑定
本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fragment中的使用 使用Data Binding(五)数据绑定 使用Data Binding(六)RecyclerView Adapter中的使用 使用Data Binding(七)使用BindingAdapter简化图片加载 使用Data Binding(八)使用自定义Interface 使用Data Binding Android Studio不能正常生成相关类/方法的解决办法 前面我们讲到了Data Binding在Activity中的使用和在Fragment中的使用,在两者的布局文件中,都可以绑定数据(对象),本篇文章我们就来介绍数据的绑定。 <data>标签 在这个标签中,我们通常用来做下面的事情: - 定义所绑定的数据的名称(变量名)及对应类型 - 引入页面所需的类 示例如下: <data> <import type="android.view....
- 下一篇
xmarin live player 连接 IOS以及安卓实现实时效果查看
原文: xmarin live player 连接 IOS以及安卓实现实时效果查看 在之前有介绍过xamarin 单独IOS项目开发的运行环境搭建,但是这段时间我看到了xmarin forms 3.0 这东西竟然可以做都使用C#开发( IOS、Mac、安卓、UWP) APP应用,而且还是UI和逻辑都是共用一份。 这就很强大了!果然微软的野心还是有的,这个一统江湖的梦怕我都不知道怎么说了。 今天就来说下在开发xmarin forms 3.0应用的时候,如何使用xmarin live player进行实时的效果查看以及体验交互效果。 开始前的一些准备工作: 1、你要准备一部苹果手机、一部安卓手机 2、安装一个最新版的VS2017开发工具(安装的时候记得把xmarin 开发选上) 在单个组件里面,调式和测试一栏把实时调试器选上,这样VS就自带安装了xmarin live player了 3、安卓手机通过谷歌商店安装xmarin live player应用 4、苹果手机通过TestFlight 安装xmarin live player应用 5、苹果和安卓手机要连接和电脑使用的网络相同的WIFI...
相关文章
文章评论
共有0条评论来说两句吧...