如何动态更改多个TextView中的文本? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何动态更改多个TextView中的文本? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我需要使用for循环设置布局中已存在的一些textView的文本。例如。 TextView_01,TextView_02等。有没有办法做类似下面的推测代码:

for(1 in 0..6){
       TextView_0(change value with i).text = something
}
答案

这不是最好的做事方式,但它可能是最普遍的,同时避免创建预定义的TextView数组:

val base = "TextView_0"

for (i in 1 until 6) {
    val textView = findViewById(resources.getIdentifier("${base}i", "id", packageName)
    textView.text = something
}

我改变了你的for循环,因为你的语法错误了。我也用..取代了until,因为..意味着通过右边界,这可能不是你想要的。如果你确实需要6作为i的值,那么将它改回..


如果所有TextView都在XML中的单个父项下,请为该父项提供ID,然后遍历其子项:

val parent = findViewById(R.id.tvParent)

for (i in 0 until parent.getChildCount()) {
    (container.getChildAt(i) as TextView).text = something
}
另一答案

您可以使用父容器

    for (i in 0 until container.childCount) {
        (container.getChildAt(i) as TextView).text = something
    }
另一答案

更好的方法是使用DataBinding和LiveData API,您可以为TextViews的文本属性分配不同的变量或相同的变量。

以上是关于如何动态更改多个TextView中的文本? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android TextView中的下划线和更改文本颜色[重复]

如何通过动态应用主题来更改textview,按钮,编辑文本的角落形状?

如何避免重复的 TextView 代码?

以编程方式动态 textview 的文本更改布局中的其他视图,我不希望它

从另一个活动更改文本

如何在单击 TextView 中的文本链接时打开浏览器 [重复]