【发布时间】:2019-05-18 08:46:24
【问题描述】:
我在自己制作的一个简单购物应用中实现了数据绑定。每当我将商品添加到购物车时,其中的 RelativeLayout 和两个 TextViews 都会更新它们的值(特别是颜色和背景)。如果我向您展示这个,您可能会更好地了解我在做什么:
<RelativeLayout
android:id="@+id/shopping_cart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@{shoppingCart.isActive ? @color/lightBlue : @color/grey }"
android:padding="13dp"
android:onClick="buy">
<TextView
android:id="@+id/cart_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{shoppingCart.state}"
android:textSize="20sp"
android:textStyle="bold"
android:layout_marginStart="40dp"
android:textColor="#fff"
android:layout_centerHorizontal="true"
/>
<TextView
android:id="@+id/cart_total"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{String.valueOf(shoppingCart.totalPrice)}"
android:textSize="20sp"
android:textColor="#fff"
android:layout_marginStart="30dp"
android:layout_toEndOf="@id/cart_state"
android:gravity="end"
/>
</RelativeLayout>
这实际上效果很好!
但是有一个问题:
如果我想看到更改发生,我必须启动一个新活动,然后返回到“原始”活动(就像我必须刷新活动才能看到数据绑定发挥其魔力一样)。
但是,如果我可以立即看到更改发生,而无需刷新或重新打开活动,我真的更愿意。
即,如何使数据绑定应用的更改立即反映在 UI 中?
【问题讨论】:
标签: java android user-interface data-binding