[英]How to update a text in a line in a TextView in android?
我有 TextView 在其中发布状态消息,例如
Device found.
Device connected.
Syncing with device (Syncing %).
Device disconnected.
我正在使用 TextView.append() 将这些状态消息发布到 TextView。 如何更新与设备同步(同步 %)行中的百分比同步值(我不想 append 使用新的 sycn 值创建新行)。 是否有可能,如果不是,我应该使用什么 View 组件来实现这种效果?
正如您提到的,您正在使用 TextView.append() 发布这些消息。
但是您应该使用 TextView.setText () 来更新其中的任何值。
TextView.setText("Syncing with device" + (Syncing %));
view.invalidate(); //for refreshment
您可以使用ObservableField<String>()
作为文本字段的值。 不断更新价值。 使用数据绑定将此值绑定到 xml 中的文本视图。
每当您想更新值时,只需在字段变量上调用set("YOUR_VALUE")
并设置您想要的文本来代替YOUR_VALUE
。 这将自动刷新您的视图。 它将是一个干净、可读和可维护的代码。
例子:
Kotlin 文件:
var syncFieldText = ObservableField<String>()
syncFieldText.set("Syncing.")
XML:
<layout>
<data>
<variable
name="item"
type="YOUR_PACKAGE.MODEL_OR_VIEWMODEL" />
</data>
.
.
.
<ConstraintLayout>
<TextView
.
.
android:text="@{item.syncFieldText}"
.
/>
</ConstraintLayout>
</layout>
我的示例仅针对一行。 多行也可以实现相同的目标。 您可以使用相同的 observable 更新整个文本视图本身。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.