91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

会理县| 宁河县| 新丰县| 齐齐哈尔市| 谷城县| 通许县| 卢龙县| 大渡口区| 五莲县| 乌兰浩特市| 奇台县| 获嘉县| 股票| 乌拉特前旗| 平果县| 肃宁县| 津市市| 镇坪县| 玛纳斯县| 邹平县| 上杭县| 遂平县| 监利县| 万载县| 漯河市| 巢湖市| 长岭县| 三亚市| 合山市| 渑池县| 逊克县| 西贡区| 昌宁县| 集贤县| 石柱| 奎屯市| 桂阳县| 安平县| 岚皋县| 柳林县| 郁南县|