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

溫馨提示×

溫馨提示×

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

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

Android開發教程 - 使用Data Binding(五)數據綁定

發布時間:2020-07-22 17:35:23 來源:網絡 閱讀:503 作者:羅伊德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>標簽

在這個標簽中,我們通常用來做下面的事情:

  • 定義所綁定的數據的名稱(變量名)及對應類型
  • 引入頁面所需的類

示例如下:

<data>
    <import type="android.view.View" />
    <import type="android.text.TextUtils" />

    <variable name="visible" type="boolean"/>
    <variable name="title" type="String"/>
    <variable name="user" type="cn.examplecode.androiddatabinding.User"/>
</data>

其中"<import/>"標簽表示引入一個類,比如上例中引入了View類和一個工具類TextUtils,當然也可以引入你自己的類,比如常量類或者工具類。

下面"<variable/>"標簽定義了本頁面所需要的各種數據名稱或類型,其類型可以是java中的基礎類型,或者自定義的類。

設置數據

上面定義了頁面中所需要的數據后,下面就需要通過獲取到的Binding對象設置這些數據:

mBinding.setVisible(true);
mBinding.setTitle("用戶信息");
User user = new User();
user.setName("Steve Jobs");
mBinding.setUser(user);

這里的setXXX()方法也是IDE自動根據<data>標簽中的定義自動生成的。

如果寫代碼過程中發現IDE并沒有自動正確生成對應的setXXX()方法,則參考這篇文章:Android Data Binding沒有正常生成相關類/方法的解決辦法,僅需幾步操作即可使IDE正常生成。

在布局中使用這些數據

數據設置完畢以后就可以在頁面中使用這些數據了,使用起來也非常方便,比起在java代碼中操作,可以省去不少代碼。

<TextView
    android:id="@+id/tv_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@{title}"
    android:visibility="@{visible ? View.VISIBLE : View.GONE}"
    />

<TextView
    android:id="@+id/tv_username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@{user.name}"
    />    

請注意上面的代碼:

android:text="@{title}"

這一行是設置變量"title"的值到TextView中。

android:visibility="@{visible ? View.VISIBLE : View.GONE}"

這一行是根據變量"visible"的值來控制該TextView的顯示與否,注意這里需要在<data>標簽中引入android.view.View類,來使用View中的VISIBLE和GONE常量,這里可以使用問號表達式來判斷。

android:text="@{user.name}"

user是一個自定義對象,user.name意思是取user對象中的name的值。

User定義如下,注意必須設置getter/setter:

public class User {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

##總結
通過本篇文章相信你已經了解如何將數據與View進行綁定,這是Data Binding的核心,也是MVVM架構模式的基礎,這里介紹的是比較簡單的綁定,后面我們將介紹更加深入的使用,使用這些技術后就會發現Data Binding的強大和高效率。

向AI問一下細節

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

AI

贺兰县| 黄浦区| 普兰店市| 樟树市| 福安市| 莎车县| 清水河县| 拜泉县| 泉州市| 大同市| 和林格尔县| 仙桃市| 北辰区| 宜丰县| 嵩明县| 社会| 永寿县| 徐汇区| 西平县| 镇宁| 嵊泗县| 定西市| 正阳县| 大兴区| 杭锦后旗| 鄄城县| 黄石市| 沅江市| 孝感市| 泌阳县| 确山县| 桦南县| 保德县| 孟村| 商洛市| 临桂县| 特克斯县| 卢龙县| 疏附县| 庆城县| 沂源县|