Android Databinding簡單使用

待完善

簡介

Databinding用於將視圖上顯示的數據和後臺保存的數據鏈接起來,實現雙向綁定,簡單的使用只需要如下幾步。

1. 一個Databinding格式的xml佈局文件

<layout>
    <data>
        <variable
        	name="variableName"
            type="variableType"/><!--類型要輸入全名,包括包名-->
    </data>
    <!--通過@{variableName.property}綁定變量,使用@={varibleName.property}實現雙向綁定,例如EditText,當用戶修改EditText的值時,綁定的數據也會被修改-->
    <!--這裏放之前的佈局文件內容,省略其他屬性以便簡潔明瞭-->
    <LinearLayout>
        <TextView
            android:text="@{variable.property1}" />
        <EditText
            android:text="@={variable.property2}"/>
    </LinearLayout>
</layout>

2. 一個存放數據的類

如果需要在數據變化時同步更新UI需要繼承自BaseObservable,給需要綁定的數據添加getset方法(雙向綁定),並添加@Bindable註釋,set方法添加notifyPropertyChanged(BR.property)用於通知數據改變,需要更新UI。

public class ConfigItem extends BaseObservable {
    private String name;
    private String value;

    @Bindable
    public String getName() {
        return name;
    }

    @Bindable
    public String getValue() {
        return value;
    }
	
    @Bindable
    public void setName(String name) {
        this.name = name;
        //通知name屬性變化,更新UI
        notifyPropertyChanged(BR.name);
    }
	
    //構造方法
    public ConfigItem(String name, String value){
        this.name = name;
        this.value = value;
    }
}

3. 綁定View(view由上述xml生成)得到binding對象

//bingding對象的類名由上述xml文件名生成,生成方法是把第一個字母大寫,後面每個下劃線_去掉並把緊跟下劃線的一個字母大寫,最後在加上Binding後綴
//例如我上面的xml文件名爲config_text_item.xml,生成的類名爲ConfigTextItemBinding
ConfigTextItemBinding mBinding = DataBindingUtil.bind(view);

4. 使用binding對象綁定數據

ConfigItem itemData = new ConfigItem("name", "value")
mBinding.setConfig(itemData);

效果如下

數據綁定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章