databinding学习(3)

原创
2015/09/20 01:03
阅读数 149

android databinding目前暂不支持双向绑定 但是提供了 Observable Binding 来得到类似的效果

(1)继承 BaseObservable

public class ObservableUser extends BaseObservable{
    private String firstName;
    private String lastName;

    @Bindable
    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
        notifyPropertyChanged(BR.firstName);
    }

    @Bindable
    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
        notifyPropertyChanged(BR.lastName);
    }
}

BR是变异阶段生成的一个类 类似R.java 当你使用了 @Bindable去标记getter方法, BR中就会生成对应属性的一个entry,你就可以 BR.属性

在setter方法中使用 notifyPropertyChanged方法可以通知系统BR.属性 已经变化需要更新UI

(2)第二种双向绑定的实现方式

public class PlainUser {
    public final ObservableField<String> firstName = new ObservableField<>();
    public final ObservableField<String> lastName = new ObservableField<>();
    public final ObservableInt age = new ObservableInt();
}

更新数据

plainUser.firstName.set(++index +"");

(3) 神奇的 带ID的View 如果你在布局中对View设定了ID 那么你只需要在代码中 在binding对象中直接调用 同ID名的对象直接使用

binding.btnSet.setOnClickListener(new View.OnClickListener() {



展开阅读全文
打赏
0
0 收藏
分享
加载中
变异——编译 我也是不能急了28
2016/07/18 16:44
回复
举报
更多评论
打赏
1 评论
0 收藏
0
分享
返回顶部
顶部