亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android開發教程 - 使用Data Binding(六)RecyclerViewAdapter

發布時間:2020-06-09 19:09:11 來源:網絡 閱讀:315 作者:羅伊德666 欄目:移動開發

本系列目錄

  • 使用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來舉例,大大簡化我們開發中加載網絡/本地圖片的重復代碼(僅需一行代碼)。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

山阳县| 左云县| 文安县| 嘉善县| 隆昌县| 环江| 双柏县| 抚远县| 连城县| 荥阳市| 丰都县| 湄潭县| 灵山县| 永德县| 林州市| 清水河县| 武强县| 岐山县| 库尔勒市| 寻乌县| 南溪县| 和龙市| 同仁县| 包头市| 遂溪县| 宜川县| 松阳县| 平舆县| 洛隆县| 葵青区| 临城县| 夹江县| 台江县| 吐鲁番市| 多伦县| 宁津县| 长岭县| 丹阳市| 文化| 罗城| 吉首市|