【问题标题】:How to get notified when property changes in Android databinding?如何在 Android 数据绑定中的属性更改时获得通知?
【发布时间】:2017-07-17 11:13:03
【问题描述】:

我希望在我的变量中的属性发生变化时得到通知。

在我的活动中:

    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) {

它没有被调用。

我应该怎么做才能收到工作属性更改通知?

【问题讨论】:

  • 在同一个ViewFilter对象上调用setPriceFrom后会被调用

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


【解决方案1】:

按照 cmets 中的建议 - 我正在其他对象实例上注册回调,这就是我没有收到任何回调的原因。

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 2010-11-23
    • 1970-01-01
    • 2013-08-16
    • 2019-12-02
    • 2021-05-03
    • 2017-06-27
    • 1970-01-01
    • 2020-07-09
    相关资源
    最近更新 更多