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架構元件-DataBinding的使用Android架構元件
- Android Jetpack(2):DataBinding的基本使用AndroidJetpack
- Android開發教程 - 使用Data Binding(三)在Activity中的使用Android
- Android開發教程 - 使用Data Binding(四)在Fragment中的使用AndroidFragment
- Android Studio: Kotlin使用DataBinding異常AndroidKotlin
- Android開發教程 - 使用Data Binding(八)使用自定義InterfaceAndroid
- MVVM模式--DataBinding的使用MVVM模式
- NeuChar 平臺使用及開發教程(六):成為開發者
- 使用AndroidX + ViewModel + LiveData + DataBinding等元件搭建的MVVM快速開發框架AndroidViewLiveData元件MVVM框架
- Android JetPack~ DataBinding(資料繫結)(一) 整合與使用AndroidJetpack
- Android:DataBinding的一二事Android
- Android Jetpack - DataBindingAndroidJetpack
- DataBinding基礎使用一
- DataBinding基礎使用二
- DataBinding基礎使用三
- Android開發教程 - 使用Data Binding(五)資料繫結Android
- Android開發教程 - 使用Data Binding(七)使用BindingAdapter簡化圖片載入AndroidAPT
- Android應用開發中如何使用隱藏的APIAndroidAPI
- 【Android開發入門教程】四.使用者介面之LayoutAndroid
- Android入門教程 | DialogFragment 的使用AndroidFragment
- Android 開發學習程式0.27 kotlin使用 和viewbinding的使用AndroidKotlinView
- Android中SearchView的使用AndroidView
- Android DataBinding之初體驗Android
- MVVM 中的DatabindingMVVM
- Android開發編譯curl庫給Android使用Android編譯
- Android開發教程 - 使用Data Binding Android Studio不能正常生成相關類/方法的解決辦法Android
- Android結合DataBinding封裝的BaseBindingAdapterAndroid封裝APT
- NeuChar 平臺使用及開發教程(一):開始使用 NeuChar
- 【翻譯】ANDROID KTX – 使用Kotlin進行Android開發AndroidKotlin
- Android中的廣播使用Android
- Cordova在Android中的使用Android
- Android的開發環境搭建教程Android開發環境
- Docker框架使用系列教程(六)建立映象Docker框架
- Zend Studio使用教程:使用PHP 7進行開發(二)PHP
- Android教程 如何免費使用SMSSDKAndroid
- 在 Android 使用 QuickJS JavaScript 引擎教程AndroidUIJSJavaScript
- 使用Kotlin高效地開發Android App(二)KotlinAndroidAPP