动态更改TextView的样式和文本

时间:2018-12-14 00:50:15

标签: android android-layout android-intent textview master-detail

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

超市 Supermarket

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

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

谢谢!

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

可以简单地通过在TextView中使用两个RelativeLayout来实现,当然也可以使用基本的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="$25.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>