繁体   English   中英

如何更新 android 中 TextView 中的一行中的文本?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM