Android開發教程-使用DataBinding(六)RecyclerViewAdapter中的使用
本系列目錄
- 使用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來舉例,大大簡化我們開發中載入網路/本地圖片的重複程式碼(僅需一行程式碼)。
相關文章
- Android開發教程-使用DataBinding(五)資料繫結Android
- Android開發教程 - 使用Data Binding(四)在Fragment中的使用AndroidFragment
- Android開發教程 - 使用Data Binding(三)在Activity中的使用Android
- Android Jetpack(2):DataBinding的基本使用AndroidJetpack
- Android架構元件-DataBinding的使用Android架構元件
- 高效開發 MVVM 和 databinding 你需要使用的工具MVVM
- Xamarin開發教程如何使用Xamarin開發Android應用Android
- NeuChar 平臺使用及開發教程(六):成為開發者
- Android 可分組的RecyclerViewAdapterAndroidViewAPT
- Android開發:Kotlin下配置DataBindingAndroidKotlin
- Xamarin Android教程如何使用Xamarin開發Android應用Android
- Android開發教程 - 使用Data Binding(八)使用自定義InterfaceAndroid
- MVVM模式--DataBinding的使用MVVM模式
- Android Studio: Kotlin使用DataBinding異常AndroidKotlin
- Android開源庫——EventBus使用教程Android
- 正確使用 iOS 開發中的六大操作手勢iOS
- Android高手進階教程(十九)之---Android開發中,使用執行緒應該注意的問題!Android執行緒
- Android應用開發中如何使用隱藏的APIAndroidAPI
- Android中如何使用Lambda表示式高效開發Android
- DataBinding基礎使用一
- DataBinding基礎使用二
- DataBinding基礎使用三
- Android JetPack~ DataBinding(資料繫結)(一) 整合與使用AndroidJetpack
- [IOS開發教程] NSfileManager的使用方法iOS
- 使用AndroidX + ViewModel + LiveData + DataBinding等元件搭建的MVVM快速開發框架AndroidViewLiveData元件MVVM框架
- 【Android開發入門教程】四.使用者介面之LayoutAndroid
- Android開發教程 - 使用Data Binding(五)資料繫結Android
- cmake使用教程(六)-蛋疼的語法
- NeuChar 平臺使用及開發教程(一):開始使用 NeuChar
- Android中的使用Android
- Git 實際開發中的使用Git
- oracle開發中序列的使用(轉)Oracle
- MVVM 中的DatabindingMVVM
- Android開發之 .9PNG 的使用Android
- Android:DataBinding的一二事Android
- Docker框架使用系列教程(六)建立映象Docker框架
- Android Jetpack - DataBindingAndroidJetpack
- 【QMUI教程】 Android Theme的使用UIAndroid