动态更改 TextView 的样式和文本

Changing a TextView's style and text dynamically

我正在尝试制作一个类似于此模型中的应用程序:

超市

这是一个非常简单的超市应用程序。如您所见,屏幕底部有一个 TextView,它告诉我我的购物车是空的,还是里面有商品。如果购物车 不是 是空的,则向用户显示 he/she 必须支付的总价。您还可以注意到 said TextView 的样式和文本会根据变量(在本例中为 "totalPrice")而变化。

如何在 Android 中执行此操作?我知道我可以使用简单的 if 语句(例如 if totalPrice == 0,然后是 backgroundColor = greytext = "EmptyCart"),但这似乎有点……硬编码。有更好的方法吗?如您所见,TextView's 样式和值在 "Subproducts" activity 上也会发生变化(某些产品有子产品,您可以在点击它们后看到它们)。

提前致谢!

要设置文本视图的文本,您可以使用 textView.setText("new text"); 来设置它的背景,它的 textView.setBackgroundColor(color) 其中颜色是您想要的十六进制代码作为整数 - 例如 0xFFFF0000 用于 reg。显然,这些可以是变量,也可以是硬编码的。

一个RelativeLayout中有两个TextView就可以简单地实现,当然,也可以使用基本的TextView方法。作为示例布局:

<RelativeLayout
    android:layout_height="75dp"
    android:layout_width="match_parent"
    android:background="#1EC4F3">

    <TextView
        android:text="PAY"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:typeface="sans"
        android:textColor="#FFFFFF"
        android:textSize="18sp"/>

    <TextView
        android:layout_height="wrap_content"
        android:text=".79"
        android:layout_width="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="8dp"
        android:typeface="monospace"
        android:textSize="14sp"
        android:textColor="#FFFFFF"/>

</RelativeLayout>

我认为数据绑定是最好的方法,而不是样板代码。 创建一个模型 class 并在数据绑定中使用三元操作更改视图的背景,还使用它管理价格文本的可见性。