动态更改 TextView 的样式和文本
Changing a TextView's style and text dynamically
我正在尝试制作一个类似于此模型中的应用程序:
超市
这是一个非常简单的超市应用程序。如您所见,屏幕底部有一个 TextView,它告诉我我的购物车是空的,还是里面有商品。如果购物车 不是 是空的,则向用户显示 he/she 必须支付的总价。您还可以注意到 said TextView
的样式和文本会根据变量(在本例中为 "totalPrice")而变化。
如何在 Android 中执行此操作?我知道我可以使用简单的 if 语句(例如 if totalPrice == 0
,然后是 backgroundColor = grey
和 text = "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 并在数据绑定中使用三元操作更改视图的背景,还使用它管理价格文本的可见性。
我正在尝试制作一个类似于此模型中的应用程序:
超市
这是一个非常简单的超市应用程序。如您所见,屏幕底部有一个 TextView,它告诉我我的购物车是空的,还是里面有商品。如果购物车 不是 是空的,则向用户显示 he/she 必须支付的总价。您还可以注意到 said TextView
的样式和文本会根据变量(在本例中为 "totalPrice")而变化。
如何在 Android 中执行此操作?我知道我可以使用简单的 if 语句(例如 if totalPrice == 0
,然后是 backgroundColor = grey
和 text = "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 并在数据绑定中使用三元操作更改视图的背景,还使用它管理价格文本的可见性。