java自动数据绑定
我在自己制作的一个简单的购物应用程序中实现了数据绑定。每当我向购物车添加一个项目时,购物车中的一个RelativeLayout
和两个TextView
都会更新它们的值(尤其是颜色和背景)。如果我向你展示以下内容,你可能会更好地了解我在做什么:
<RelativeLayout
安卓:id="@+id/shopping_cart"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
安卓:layout_alignParentBottom="true"
安卓:background="@{shoppingCart.isActive ? @color/lightBlue : @color/grey }"
安卓:padding="13dp"
安卓:onClick="buy">
<TextView
安卓:id="@+id/cart_state"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:text="@{shoppingCart.state}"
安卓:textSize="20sp"
安卓:textStyle="bold"
安卓:layout_marginStart="40dp"
安卓:textColor="#fff"
安卓:layout_centerHorizontal="true"
/>
<TextView
安卓:id="@+id/cart_total"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:text="@{String.valueOf(shoppingCart.totalPrice)}"
安卓:textSize="20sp"
安卓:textColor="#fff"
安卓:layout_marginStart="30dp"
安卓:layout_toEndOf="@id/cart_state"
安卓:gravity="end"
/>
</RelativeLayout>
这真的很有效
但有一个问题:
如果我想看到更改发生,我必须启动一个新的活动,然后返回到“原始”活动(就像我必须刷新活动才能看到数据绑定发挥其魔力一样)
然而,我真的更希望看到更改立即发生,而不必刷新或重新打开活动
即,如何使数据绑定应用的更改立即反映在UI中
# 1 楼答案
更新值时,需要通知视图更新绑定
您可以使
ShoppingCart
类扩展BaseObservable以实现通知功能看看下面document中的例子