如何在Android数据绑定中更改属性时收到通知?

时间:2017-07-17 11:13:04

标签: android android-databinding 2-way-object-databinding

我希望在我的变量中更改属性时收到通知。

在我的活动中:

    viewDataBinding = DataBindingUtil.setContentView(this, R.layout.list);
    viewDataBinding.setViewFilter(viewFilter);

我的模特:

public class ViewFilter extends BaseObservable {
    private String priceFrom;

    public ViewFilter() {
    }

    @Bindable
    public String getPriceFrom() {
        return priceFrom;
    }

    public void setPriceFrom(String priceFrom) {
        this.priceFrom = priceFrom;
        notifyPropertyChanged(BR.priceFrom);
    }
}

我的布局:

<data>
    <variable
        name="viewFilter"
        type="com.example.ViewFilter" />
</data>

                <EditText
                    android:id="@+id/edtListPriceFrom"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:digits="0123456789."
                    android:inputType="numberDecimal|numberSigned"
                    android:text="@={viewFilter.priceFrom}" />

当我想添加监听器时:

    viewFilter.addOnPropertyChangedCallback(new OnPropertyChangedCallback() {
        @Override
        public void onPropertyChanged(Observable sender, int propertyId) {

它没有被调用。

如何处理工作房产变更通知?

1 个答案:

答案 0 :(得分:0)

正如评论中所建议的那样 - 我正在其他对象实例上注册回调,这就是我没有收到回复的原因。