Android:如何通过代码为LinearLayout中的TextView设置文本值?
问题原因及解决方法
核心问题
你遍历LinearLayout子View时,拿到的是**View类型**的对象,而text属性、setText()方法是TextView特有的,直接调用会无效或报错。setBackgroundColor()是View类的通用方法,所以能正常生效。另外你代码里的tv.setText = "no such property!"是语法错误,setText是方法,不是可直接赋值的属性(Kotlin里TextView的text是封装后的属性,对应Java的setText())。
修正后的代码
for (view in binding.wofGuessesList.children) { // 先判断当前子View是否为TextView实例 if (view is TextView) { // 筛选出仍显示默认文本的TextView if (view.text == "Guess?") { // 设置用户猜中的内容 view.text = "用户猜中的内容" // 设置背景色 view.setBackgroundColor(Color.parseColor("#90EE90")) // 样式默认设置为invisible,需改为可见 view.visibility = View.VISIBLE // 找到第一个目标TextView后跳出循环,避免批量修改 break } } }
补充注意事项
- 样式中
TextView默认visibility="invisible",设置文本后必须改为VISIBLE,否则用户无法看到内容。 - 找到第一个未填充的TextView后添加
break,确保每次只修改一个位置的内容。
内容的提问来源于stack exchange,提问作者Yanay Lehavi
相关产品推荐
相关产品推荐

